【问题标题】:Basic mail sending : SSL authentication error基本邮件发送:SSL 认证错误
【发布时间】:2015-05-12 13:51:20
【问题描述】:

我正在使用 Unity5 并编写一些代码来发送基本邮件。 我已经阅读了文档以及其他用户的问题,但似乎无法让我的代码正常工作。 当我尝试发送邮件时收到此错误: “InvalidOperationException:SSL 身份验证错误:RemoteCertificateNotAvailable、RemoteCertificateChainErrors”

到目前为止,这是我的代码,希望你们得到任何建议! :) 谢谢。

var client = new System.Net.Mail.SmtpClient("smtp.gmail.com", 587)
    {
        Credentials = (ICredentialsByHost)new System.Net.NetworkCredential("MyMail", "MyPWD"),
        EnableSsl = true
    };

    client.Send("MyMail", "MyPWD", "test", "testbody");

【问题讨论】:

  • 您是否在您的 gmail 帐户中启用了 SMTP?我知道 GMail 对第三方能够通过它发送电子邮件有非常具体的要求。
  • 你试过安装远程证书吗?见stackoverflow.com/questions/4148019/…

标签: c# .net sendmail


【解决方案1】:

这似乎对我有用。如果这不起作用,我会检查你的帐户。

var smtp = new SmtpClient {
                Host = "smtp.gmail.com",
                Port = 587,
                EnableSsl = true,
                DeliveryMethod = SmtpDeliveryMethod.Network,
                UseDefaultCredentials = false,
                Credentials = new NetworkCredential("user", "password")
            };

            smtp.Send(message);

【讨论】:

  • 对我不起作用,我不知道在我的帐户中查找什么
【解决方案2】:

基于这个Google SMTP settings page,端口是:

端口 465(需要 SSL) 端口 587(需要 TLS)

所以你想要端口 465 用于 SSL

【讨论】:

  • 使 Unity 立即崩溃:/
  • 在 SmtpClient 中设置不同的端口会导致 Unity 崩溃?这听起来更像是一个 Unity 问题,而不是一个 .Net 问题。您是否有更多详细信息,例如错误消息或您的机器内存不足?如果您将代码 sn-p 包装在 try{}catch{} 中并进行调试,您能否在崩溃之前看到捕获的错误(或防止崩溃?)。作为替代方案,您可以尝试在单元测试项目中的 VisualStudio 中测试您的 SMTP 代码,以确保在查看 Unity 编辑器是否可以处理运行它之前一切正常。
  • 您的病毒防护软件是否可能正在积极阻止未签名的应用程序尝试发送电子邮件:stackoverflow.com/questions/22702453/…
猜你喜欢
  • 2011-12-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-01-29
  • 2016-06-16
  • 2012-12-02
  • 1970-01-01
  • 2015-04-22
相关资源
最近更新 更多