【发布时间】:2019-01-29 06:24:24
【问题描述】:
我已经看到很多隐式 SSL 的示例(用于已弃用的 System.Web.Mail),但我使用的是 System.Net.Mail,并且想要一个代码示例,了解如何通过显式 SSL 发送 SMTP 电子邮件。
我当前的sendEmail 代码如下 - 请注意,如果我设置EnableSsl = true,服务器会返回 500 错误并且永远不会发送电子邮件。我假设因为这是隐式 SSL,System.Net.Mail 不支持:
using System.Net.Mail;
...
public static void SendEmail(string emailbody)
{
MailMessage mailMessage = new MailMessage("myDomain@me.com", "yourDomain@me.com");
mailMessage.IsBodyHtml = true;
mailMessage.Body = emailbody;
mailMessage.Subject = "My email";
SmtpClient smtpClient = new SmtpClient("smtp.me.com", 25);
// if false, email sends. If true, email does not send, server returns 500 error
smtpClient.EnableSsl = false;
smtpClient.Send(mailMessage);
}
【问题讨论】:
-
您的电子邮件提供商为 SSL 电子邮件使用什么端口?
-
不确定,但我猜是 465
-
而不是
25作为端口号,你能给出你的邮件服务器的实际启用SSL 的端口号吗? (也将EnableSsl设置为true)。您还可以看到远程服务器返回的确切错误消息。这有助于排除故障。我们使用以下命令行程序 (caspian.dotconf.net/menu/Software/SendEmail) 来解决邮件问题。根据我们的经验,在大多数情况下,邮件服务器需要进行一些设置更改。 (例如,放宽中继限制等)。因此,来自邮件服务器的确切错误消息很关键。
标签: c# asp.net ssl smtp system.net.mail