首先,我通过反复试验发现 c# 4/.NET 4 有一些我无法解释的严重限制。
Microsoft 不在 c# 4/.NET 4 中通过端口 465 支持 SSL。
Microsoft 仅通过“STARTTLS”在587 上支持SSL。
我需要使用 465/SSL 因为我的邮件服务器 hMailServer 不支持“STARTTLS”。
我曾希望开箱即用地使用 c# 4/.NET 4 ...我不想购买任何第三方解决方案。
我想做的是为 在端口 465 上使用 SSL 的 SMTP 制定我自己的解决方案。
我猜我可能必须使用 C# 非托管代码来实现这一点。
有什么想法吗?,谢谢。 rgds/格里
引用资料:
"configuring SSL confusion..." , hMailServer 论坛帖子。
MSDN:"SmtpClient.EnableSsl Property" :
“另一种连接方法是在发送任何协议(protocol)命令之前预先建立 SSL session 。这种连接方法有时称为 SMTP/SSL、SMTP over SSL 或 SMTPS,默认情况下使用端口 465。这种使用 SSL 的替代连接方法目前不支持。”
P.S.:我搜索了 SO 和 Google,但找不到任何直接相关的内容。
最佳答案
如果可以,并且它仍然有效(“此 API 现在已过时”),您应该能够使用 System.Web.Mail.MailMessage
来使用 SMTPS(带有预先 SSL/TLS 的 SMTP) :
System.Web.Mail.MailMessage mailMsg = new System.Web.Mail.MailMessage();
// ...
mailMsg.Fields.Add
("http://schemas.microsoft.com/cdo/configuration/smtpusessl",
true);
当然,这个 API 现在在 .Net 4 中已经过时的事实并不理想。它可能在实践中仍然有效。
否则,您可能不得不依赖第 3 部分库或类似 stunnel 的东西.
关于.net - 如何将 SMTP 与 c# 4/.NET 4 连接到端口 465/SSL(当前不受支持)...需要想法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8378360/