我试图通过GMail SMTP服务器使用C#(.NET Framework 4.5)和System.Net.Mail类发送电子邮件,但我总是得到一个
System.Net.Mail.SmtpException" 发送邮件失败。",
有一个内部的System.Web.Exception
" 无法连接到远程服务器",它也有一个内部 System.Net.Sockets.SocketException" 试图访问a 套接字以其访问权限禁止的方式 74.125.113.109:587" (套接字错误代码= 10013)。
我从StackOverflow和其他论坛上阅读了很多关于通过GMail发送电子邮件的其他问题和答案,包括GMail SMTP信息页面。我还使用TCPVIEW实用程序来检查另一个应用程序是否已打开相同的远程地址和端口,并且我使用管理权限执行了我的应用程序,并且我也关闭了我的Outlook客户端......我无法解决问题。
你能帮帮我吗?我写的代码是:
try
{
using (SmtpClient servidor = new SmtpClient())
{
if (servidor == null)
return false;
servidor.Host = "smtp.gmail.com";
servidor.Port = 587;
servidor.EnableSsl = true;
servidor.UseDefaultCredentials = false;
servidor.Credentials = new System.Net.NetworkCredential("miUser@gmail.com", "miPassword");
using (MailMessage mail = new MailMessage())
{
if (mail == null)
return false;
String de = "miUser@gmail.com";
mail.From = new MailAddress(de);
String para = "toMailAddress@xxxx.yyy";
mail.To.Add(para);
mail.Subject = "Mail subject";
mail.SubjectEncoding = System.Text.Encoding.UTF8;
mail.Body = "Mail body";
mail.BodyEncoding = System.Text.Encoding.UTF8;
mail.IsBodyHtml = false;
mail.DeliveryNotificationOptions = DeliveryNotificationOptions.OnFailure;
try
{
servidor.Send(mail);
// Alternatively I tried this:
// servidor.Send(de, para, mail.Subject, mail.Body);
return true;
}
catch (Exception)
{
throw;
}
}
}
}
catch (Exception mex)
{
return false;
}
非常感谢。