【问题标题】:SMTP Authentication Exception after power outage断电后 SMTP 认证异常
【发布时间】:2015-10-15 18:37:16
【问题描述】:

异常类型:AuthenticationException
异常消息:根据验证程序,远程证书无效。

我使用 google 的 SMTP 服务器从 ASP.Net 应用程序发送电子邮件。以下代码已用于成功发送消息一年多,直到昨天,这与服务器因断电而停机有关。

这是我正在使用的代码。

c#

public static MailMessage CreateMailMessage(List<string> destination, string subject, string body)
{
    MailMessage m = new MailMessage();

    foreach (string email in destination)
    {
        m.To.Add(email);
    }
    m.From = new MailAddress(from);
    m.Subject = subject;
    m.Body = body;
    m.IsBodyHtml = true;
    return m;
}
public static void SendMailMessage(MailMessage mailMessage)
{
    SmtpClient smtpClient = new SmtpClient();
    smtpClient.Send(mailMessage);
}

web.config

<configuration>
  <configSections>
    <section name="resizer" type="ImageResizer.ResizerSection" requirePermission="false" />
  </configSections>
  <connectionStrings configSource="ConnectionStrings.config" />
  <system.net>
    <mailSettings>
      <smtp configSource="SmtpSettings.config" />
    </mailSettings>
  </system.net>
<configuration>

SmtpSettings.config

<smtp deliveryMethod="Network">
  <network host="smtp.gmail.com" port="587" enableSsl="true" userName="username" password="password"/>
</smtp>

我已经在另一台服务器上测试了代码,它按预期工作。服务器上会不会有一些服务没有启动?

【问题讨论】:

    标签: c# asp.net smtp iis-6 windows-server-2003


    【解决方案1】:

    问题与 SSL 证书验证有关。您的 X.509 证书数据库可能已损坏,或者链中的某个证书(用于验证 Google 的证书)由于某种原因不再受信任。甚至可能是 Google 的 SSL 证书有问题。

    遗憾的是,我的回答可能不是很有帮助,但这是我能想到的。

    【讨论】:

    • 这在另一台服务器上成功的事实是否消除了它是链中证书问题的可能性?
    • 如果每个服务器的证书存储中的证书不同,则不会。每个服务器可能都有自己的根 CA 证书副本,并且可能需要一些中间证书,以便在您连接到 Google 的 GMail 服务器时验证提供的链。
    猜你喜欢
    • 2019-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-02
    • 1970-01-01
    • 2015-04-13
    • 2015-06-05
    相关资源
    最近更新 更多