无法使用端口465使用Gmail/Yahoo等外发邮件服务器在C#中发送邮件

HW_*_*Dev 5 c# email

使用System.Net.Mail命名空间,使用的代码如下所示.

MailMessage MyMailMessage = new MailMessage("example@gmail.com", "example@gmail.com",

"write your subject Here ", "Hi,This is the test message ");

MyMailMessage.IsBodyHtml = false;

NetworkCredential mailAuthentication = new NetworkCredential("example@gmail.com","xxxxxxxx");

    SmtpClient mailClient = new SmtpClient("smtp.gmail.com", 465);

    mailClient.EnableSsl = true;

    mailClient.DeliveryMethod = SmtpDeliveryMethod.Network;

    mailClient.UseDefaultCredentials = false;

    mailClient.Credentials = mailAuthentication;

    mailClient.Send(MyMailMessage);
Run Code Online (Sandbox Code Playgroud)

如果使用465端口,则使用上述代码超时异常.25端口工作正常.在雅虎帐户的情况下,465和25都发送邮件失败.

无论如何,使用gmail或yahoo帐户发送邮件可以支持465端口.

参考以下链接 http://blogs.msdn.com/b/webdav_101/archive/2008/06/02/system-net-mail-with-ssl-to-authenticate-against-port-465.aspx

是否声称Windows Mail使用System.Net.Mail发送消息 - 不使用隐式SSL.

有没有解决方案来解决这个问题.

提前致谢

Cri*_*ris 2

这不是问题的答案,但 .NET 内置邮件类不支持所需的隐式 SSL 方法。为此,您必须使用第三方 SMTP 客户端组件,这些组件能够支持显式和隐式 SSL。