In this article I will explain how to send email by embedding images using Gmail credentials in asp.net
Description:
Generally we will send mails using SMTP server suppose if we don’t have smtp server in that situation we can send mails by using gmail smtp server in asp.net. I will explain how to implement mail sending concept using Gmail credentials using asp.net.
To implement this concept first you need to enable POP enable in your Gmail account for this Settings-->Forwarding and POP/IMAP
To implement this mail concept in your asp.net application first we need to add this reference to our application System.Net.Mail namespace
What is System.Net.Mail ?
The System.Net.Mail is a namespace which contains classes to send electronic mail through Simple Mail Transfer Protocol (SMTP) server for delivery.
How we can get this reference (System.Net.Mail)
for that first add System.Net.dll reference to our application.
for that first add System.Net.dll reference to our application.
a a) On the Project menu, click Add Reference.
b b) On the .NET tab, locate System.Net.dll, and then click Select.
c c) Click OK in the Add References.
After that design your aspx page like this
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<title>Send Mail using with gmail crendentials in asp.net</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<table style=" border:1px solid" align="center">
<tr>
<td colspan="2" align="center">
<b>Send Mail using gmail credentials in asp.net</b>
</td>
</tr>
<tr>
<td>
Gmail Username:
</td>
<td>
<asp:TextBox ID="txtUsername" runat="server"></asp:TextBox>
</td>
</tr>
<tr>
<td>
Gmail Password:
</td>
<td>
<asp:TextBox ID="txtpwd" runat="server" TextMode="Password"></asp:TextBox>
</td>
</tr>
<tr>
<td>
Subject:
</td>
<td>
<asp:TextBox ID="txtSubject" runat="server"></asp:TextBox>
</td>
</tr>
<tr>
<td>
To:
</td>
<td>
<asp:TextBox ID="txtTo" runat="server"></asp:TextBox>
</td>
</tr>
<tr>
<td>
Attach a file:
</td>
<td>
<asp:FileUpload ID="fileUpload1" runat="server" />
</td>
</tr>
<tr>
<td valign="top">
Body:
</td>
<td>
<asp:TextBox ID="txtBody" runat="server" TextMode="MultiLine" Columns="30" Rows="10" ></asp:TextBox>
</td>
</tr>
<tr>
<td>
</td>
<td>
<asp:Button ID="btnSubmit" Text="Send" runat="server" onclick="btnSubmit_Click" />
</td>
</tr>
</table>
</div>
</form>
</body>
</html>
|
After that add following namcespace in your codebehind
using System.Net.Mail; |
Now write following code in button click
protected void btnSubmit_Click(object sender, EventArgs e)
{
try
{
MailMessage Msg = new MailMessage();
// Sender e-mail address.
Msg.From = new MailAddress(txtUsername.Text);
// Recipient e-mail address.
Msg.To.Add(txtTo.Text);
Msg.Subject = txtSubject.Text;
// File Upload path
String FileName = fileUpload1.PostedFile.FileName;
string mailbody = txtBody.Text + "<br/><img src=cid:companylogo>";
LinkedResource myimage = new LinkedResource(FileName);
// Create HTML view
AlternateView htmlMail = AlternateView.CreateAlternateViewFromString(mailbody, null, "text/html");
// Set ContentId property. Value of ContentId property must be the same as
// the src attribute of image tag in email body.
myimage.ContentId = "companylogo";
htmlMail.LinkedResources.Add(myimage);
Msg.AlternateViews.Add(htmlMail);
// your remote SMTP server IP.
SmtpClient smtp = new SmtpClient();
smtp.Host = "smtp.gmail.com";
smtp.Port = 587;
smtp.Credentials=new System.Net.NetworkCredential(txtUsername.Text,txtpwd.Text);
smtp.EnableSsl = true;
smtp.Send(Msg);
Msg = null;
Page.RegisterStartupScript("UserMsg", "<script>alert('Mail sent thank you...');if(alert){ window.location='SendMail.aspx';}</script>");
}
catch (Exception ex)
{
Console.WriteLine("{0} Exception caught.", ex);
}
}
|
Demo
|
Other related posts are
If you enjoyed this post, please support the blog below. It's FREE! Get the latest Asp.net, C#.net, VB.NET, jQuery, Plugins & Code Snippets for FREE by subscribing to our Facebook, Twitter, RSS feed, or by email. |
|||
|
|||
15 comments :
Article is Very Helpful and cool.
I got an error in uploadind the image, hence unale to send image
really all examples are very usefull and very very helpfull..thank u soooo much
i used your post for how to send mail with images using Gmail credentials in asp.net or how to send mail with images using asp.net
but there is come some error
Could not find file 'C:\Program Files\Common Files\Microsoft Shared\DevServer\10.0\mahesh.JPG'.
hi,
how to set img src=cid:companylogo
Hi g
user following to linkResource
LinkedResource myimage = new LinkedResource(Server.MapPath("~//" +FileName), "image/jpg");
you will not get above error.
but there is another issue
at smtp.Send(Msg) line, it throws an exception ("Failure sending mail.")
i am not understanding why this error comes. while my gmail credentials are right.
Could not find file 'C:\Program Files\Common Files\Microsoft Shared\DevServer\10.0\image_name.jpg
this error is thrown by the program.
give some solution regarding this..
i can' able to attach the image while sednig mail.can u do a favour me?
Before using LinkedResource
save the file in some folder the code will work !!!!
i run the above code without attachment in .net framework 4.5,vs 2012.It's working fine but showing error
superb, thank you friend
Nice article it's really helpful ...................................
superb, thank you
error in this code.. plz. corrent then...
the above code works only if one image to be send but what if in table image colums contains multiple
Note: Only a member of this blog may post a comment.