我在通过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设置应该是正确的:
奇怪的是,如果我使用以下所有内容,即使Office 365说需要SSL,也能正常运行。
smtpClient.Connect("smtp.office365.com", 587, false);
答案 0 :(得分:12)
发布此问题之后又出现了另一个错误,这导致我得到答案:
由于意外的数据包格式而导致握手失败
解决方案是以这样的方式连接到Office 365:
smtpClient.Connect("smtp.office365.com", 587, SecureSocketOptions.StartTls);