[英]Send email from C# does not work
我正在尝试发送包含C#代码的电子邮件,该电子邮件是从MSDN上的示例复制而来的(例如https://msdn.microsoft.com/en-us/library/14k9fb7t%28v=vs.110%29.aspx )
// from and password contain my credentials
// to contains a valid email address
public static void CodeExample()
{
try
{
using (MailMessage mail = new MailMessage(from, to))
{
using (SmtpClient server = new SmtpClient("smtp.googlemail.com"))
{
mail.From = new MailAddress(from);
mail.To.Add(new MailAddress(to));
mail.Subject = "Test subject";
mail.Body = "Test message";
mail.IsBodyHtml = false;
server.Port = 465;
server.Credentials = new System.Net.NetworkCredential(from, password);
server.UseDefaultCredentials = true;
server.EnableSsl = true;
server.ServicePoint.MaxIdleTime = 1;
server.Timeout = 60000;
Console.WriteLine("Sending to {0} by using SMTP host {1} port {2}.", to.ToString(), server.Host, server.Port);
server.Send(mail);
Console.WriteLine("mail Sent");
}
}
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
Console.WriteLine("Inner Exception:");
Console.WriteLine(ex.InnerException?.ToString());
}
}
但是我总是有一个例外:
System.Net.Mail.SmtpException:发送邮件失败。 ---> System.IO.IOException:无法从传输连接中读取数据:net_io_connectionclosed。
“发件人”地址的详细信息已经过检查,看起来还可以。 从Yahoo!发送 帐户失败的方式相同。 我尝试了SmtpClient
属性的许多不同组合。 我的防火墙日志中没有消息。
使用Thunderbird,我可以同时从Googlemail和Yahoo!发送邮件。 帐户没有问题。
对于如何使它起作用的任何提示,我将不胜感激。
编辑
我看过这篇文章SmtpException:无法从传输连接中读取数据:net_io_connectionclosed
Google邮件在端口587上失败(使用并注释掉UseDefaultCredentials = true
和EnableSsl = true
),报告我的应用程序不安全。 我会尝试Yahoo! 稍后在端口587上。
谢谢您的帮助。 如SmtpException所示,使用端口587非常重要:无法从传输连接读取数据:net_io_connectionclosed
我仍然无法使smtp.googlemail.com或smtp.gmail.com正常工作,但是使用Gmail的SmtpClient对此进行了介绍。
我的程序正在使用smtp.mail.yahoo.com。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.