Reputation: 5041
Not sure why this is happening. Every where I've search tells me that i'm doing this right. But every time I try and send the mail, it times out on the smtpserver.Send(mail)
private void emailReport(string email_address,int begDatabaseCount, int endDatabaseCount)
{
SmtpClient smtpserver = new SmtpClient();
MailMessage mail = new MailMessage();
smtpserver.EnableSsl = true;
smtpserver.Port = 465;
smtpserver.Host = "smtp.gmail.com";
smtpserver.Credentials = new NetworkCredential("[email protected]", "password");
smtpserver.UseDefaultCredentials = false;
mail = new MailMessage();
mail.From = new System.Net.Mail.MailAddress("[email protected]", "ATR Reports");
mail.To.Add(email_address);
mail.Subject = "FNAS Report - " + DateTime.Now;
mail.Body += "<u><b>FNAS Report for " + DateTime.Now + "</u></b>" + "\r\n \r\n";
mail.Body += "Beginning Database Count - " + begDatabaseCount + "\r\n" + "\r\n";
mail.Body += "End Database Count - " + endDatabaseCount + "\r\n" + "\r\n";
mail.Body += "<b>Total Imported Orders = " + (endDatabaseCount - begDatabaseCount) + "<b>" + "\r\n" + "\r\n";
mail.IsBodyHtml = true;
smtpserver.Send(mail);
}
Port 465 = Time Out after 1 minute
Port 587 = "The SMTP server requires a secure connection or the client was not authenticated. The server response was: 5.5.1 Authentication Required. "
Upvotes: 4
Views: 13635
Reputation: 987
As @kostyan said, the right port is 587, but to authenticate you need to allow access from less secure apps in your gmail account. Try it here
It worked for me, hope it helps..
Upvotes: 10
Reputation: 5632
I have found that when I tried to spoof the sender address using google smtp (for instance, using FromAddress as something other than the name of my gmail account) I was getting either authentication error messages or simply timing out.
Upvotes: 1
Reputation: 5041
This thread helped me. I'm not sure why this code worked and mine wasn't.
Sending email in .NET through Gmail
using System.Net;
using System.Net.Mail;
var fromAddress = new MailAddress("[email protected]", "From Name");
var toAddress = new MailAddress("[email protected]", "To Name");
const string fromPassword = "fromPassword";
const string subject = "Subject";
const string body = "Body";
var smtp = new SmtpClient
{
Host = "smtp.gmail.com",
Port = 587,
EnableSsl = true,
DeliveryMethod = SmtpDeliveryMethod.Network,
UseDefaultCredentials = false,
Credentials = new NetworkCredential(fromAddress.Address, fromPassword)
};
using (var message = new MailMessage(fromAddress, toAddress)
{
Subject = subject,
Body = body
})
{
smtp.Send(message);
}
Upvotes: 4
Reputation: 3294
Are you sure about the port, in my code I have it as 587, otherwise looks similar and it works.
Upvotes: 5