【问题标题】:Sending an E-Mail via Google Mail通过 Google Mail 发送电子邮件
【发布时间】:2016-08-29 00:32:03
【问题描述】:

我正在尝试使用 MailKit 通过 Gmail 发送电子邮件。这是我的代码:

using MailKit.Net.Smtp;

using (var client = new SmtpClient())
{
    client.Connect("smtp.gmail.com", 587, false);
    //...
}

但无论我尝试什么,我总是会遇到以下异常:

System.IO.IOException:认证或解密失败。

我已经尝试在我的 Google 帐户中启用“不安全的应用程序”,但这没有帮助。到目前为止,我找不到任何显示如何通过 Gmail 发送邮件的工作示例。

编辑: 我刚刚尝试在 WINdows 上运行代码(使用 .NET),它运行良好。电子邮件立即发送。只有当我使用 Mono 在 Linux/OSX 上运行它时,它才不起作用。

【问题讨论】:

  • 错误给了你所有的提示。authentication你在哪里传递 gmail 帐户的用户名和密码。还有很多关于如何使用标准的工作示例。 net 的 smtp 类.. 尝试在谷歌上搜索如何使用 smtp 向 gmail 发送电子邮件
  • @MethodMan:用户名和密码是在调用 connect 方法之后提供的。你用过MailKit吗?至于 .NET Smtp 类:我尝试了 Stack Overflow 上的四个不同示例。他们都没有工作。它们还会产生类似的身份验证异常。
  • @Sylverac:如果它使用完全不同的框架(MailKit,而不是 .NET SMTP 类),它怎么可能是重复的?
  • 也许这有帮助。 mimekit.net/docs/html/…,client.Connect(“smtp.gmail.com”,465,SecureSocketOptions.SslOnConnect);

标签: c# .net mono smtp gmail


【解决方案1】:

我刚刚找到了答案! 在我的程序开头添加以下代码行解决了它:

System.Net.ServicePointManager.ServerCertificateValidationCallback +=
(o, certificate, chain, errors) => true;

现在 MailKit 会按应有的方式发送电子邮件。 .NET/Mono SMTP 类也是如此。

【讨论】:

  • 太棒了!!请问,这个解决方案是否适用于“不安全的应用程序”?谢谢。 :-)
猜你喜欢
  • 2021-04-18
  • 1970-01-01
  • 1970-01-01
  • 2014-12-15
  • 1970-01-01
  • 1970-01-01
  • 2014-10-03
  • 2011-04-22
  • 1970-01-01
相关资源
最近更新 更多