从C#发送电子邮件不起作用

时间:2016-05-24 20:57:29

标签: c# email

我正在尝试发送一封包含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: Unable to read data from the transport connection: net_io_connectionclosed

谷歌邮件在端口587上失败(使用和评论UseDefaultCredentials = trueEnableSsl = true),报告我有一个不安全的应用程序。我会试试Yahoo!在587号港口。

1 个答案:

答案 0 :(得分:0)

感谢您的帮助。使用端口587很重要,如SmtpException: Unable to read data from the transport connection: net_io_connectionclosed

所示

我仍然无法让smtp.googlemail.com或smtp.gmail.com工作,但SmtpClient with Gmail涵盖了这一点。

我的程序现在正在使用smtp.mail.yahoo.com。