Monday, August 23, 2010

Send Email Using Gmail in ASP.NET

If you want to send email using your Gmail account or using Gmail's smtp server in ASP.NET application or if you don't have a working smtp server to send mails using your ASP.NET application or aspx page than sending e-mail using Gmail is best option.

you need to write code like this

First of all add below mentioned namespace in code behind of aspx page from which you want to send the mail.

using System.Net.Mail;

Now write this code in click event of button.

C# code

protected void Button1_Click(object sender, EventArgs e) 
{   
MailMessage mail = new MailMessage();   
mail.To.Add("kritika.yadav.ecb@gmail.com");   
mail.To.Add("kriyadav@yahoo.com");   
mail.From = new MailAddress("kritika.yadav.ecb@gmail.com");   
mail.Subject = "Email using Gmail";    
string Body = "Hi, this mail is to test sending mail"+"using Gmail in ASP.NET";   
mail.Body = Body;    
mail.IsBodyHtml = true;   
SmtpClient smtp = new SmtpClient();   
smtp.Host = "smtp.gmail.com";  
smtp.Credentials = new System.Net.NetworkCredential("YourUserName@gmail.com","YourGmailPassword");   
smtp.EnableSsl = true;   
smtp.Send(mail); 
}

VB.NET code 

Imports System.Net.Mail  
Protected  Sub Button1_Click (ByVal sender As Object, ByVal e As EventArgs)  
Dim mail As 
MailMessage=New MailMessage()mail.To.Add("kritika.yadav.ecb@gmail.com")mail.To.Add("kriyadav@yahoo.com")
mail.From=New MailAddress("kritika.yadav.ecb@gmail.com")mail.Subject ="Email using Gmail"
String Body="Hi,this mail is to test sending mail"+"using Gmail in ASP.NET"   mail.Body = Body mail.IsBodyHtml = True   
Dim smtp As SmtpClient=New SmtpClient()    
smtp.Host="smtp.gmail.com"  
smtp.Credentials=New System.Net.NetworkCredential("YourUserName@gmail.com",
"YourGmailPassword")smtp.EnableSsl=True
smtp.Send(mail) 
End Sub 
You also need to enable POP by going to settings Forwarding and POP in your gmail account

Change YourUserName@gmail.com to your gmail ID and YourGmailPassword to Your password for Gmail account and test the code.

If your are getting error mentioned below
"The SMTP server requires a secure connection or the client was not authenticated. The server response was: 5.5.1 Authentication Required."

than you need to check your Gmail username and password.

If you are behind proxy Server then you need to write below mentioned code in your web.config file .
<system.net>
<defaultProxy> 
<proxy proxyaddress="YourProxyIpAddress"/> 
defaultProxy> system.net>

If you are still having problems them try changing port number to 587 .

smtp.Host = "smtp.gmail.com,587";

If you still having problems then try changing code as mentioned below

SmtpClient smtp = new SmtpClient(); 
smtp.Host="smtp.gmail.com"; 
smtp.Port = 587; 
smtp.UseDefaultCredentials=False;
smtp.Credentials=new System.Net.NetworkCredential("YourUserName@gmail.com","YourGmailPassword"); 
smtp.EnableSsl=true; 
smtp.Send(mail);

No comments: