MailKit C#SmtpClient.Connect()到Office 365生成异常:"现有连接被远程主机强行关闭"

时间:2017-01-26 11:48:43

标签: c# office365 mailkit

我在通过Office 365 SMTP和MailKit发送电子邮件时遇到问题。我得到的例外是:

  

未处理的异常:System.IO.IOException:无法从中读取数据   传输连接:强制关闭现有连接   由远程主机。

     

System.Net.Sockets.SocketException:现有连接是   被远程主机强行关闭

https://github.com/jstedfast/MailKit

代码:

var smtpClient = new SmtpClient();

smtpClient.Connect("smtp.office365.com", 587, true);

Microsoft Office 365设置应该是正确的:

https://support.office.com/en-us/article/POP-and-IMAP-settings-for-Outlook-Office-365-for-business-7fc677eb-2491-4cbc-8153-8e7113525f6c

奇怪的是,如果我使用以下所有内容,即使Office 365说需要SSL,也能正常运行。

smtpClient.Connect("smtp.office365.com", 587, false);

1 个答案:

答案 0 :(得分:12)

发布此问题之后又出现了另一个错误,这导致我得到答案:

  

由于意外的数据包格式而导致握手失败

解决方案是以这样的方式连接到Office 365:

smtpClient.Connect("smtp.office365.com", 587, SecureSocketOptions.StartTls);