Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 通过谷歌邮件发送电子邮件_C#_.net_Mono_Smtp_Gmail - Fatal编程技术网

C# 通过谷歌邮件发送电子邮件

C# 通过谷歌邮件发送电子邮件,c#,.net,mono,smtp,gmail,C#,.net,Mono,Smtp,Gmail,我正在尝试使用MailKit通过Gmail发送电子邮件。这是我的代码: using MailKit.Net.Smtp; using (var client = new SmtpClient()) { client.Connect("smtp.gmail.com", 587, false); //... } 但无论我尝试什么,我总是会遇到以下例外: System.IO.IOException:身份验证或解密失败 我已经尝试在我的谷歌账户中启用“不安全的应用程序”,但没有任何帮助

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

using MailKit.Net.Smtp;

using (var client = new SmtpClient())
{
    client.Connect("smtp.gmail.com", 587, false);
    //...
}
但无论我尝试什么,我总是会遇到以下例外:

System.IO.IOException:身份验证或解密失败

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

编辑: 我只是试着在WIndows上运行代码(使用.NET),它工作得非常好。电子邮件马上就被发送出去了。只有当我使用Mono在Linux/OSX上运行它时,它才不起作用。

我刚刚找到了答案! 将以下代码行添加到我的程序开头解决了此问题:

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

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

可能的重复:?错误为您提供了所有提示<代码>身份验证您在哪里传递gmail帐户的用户名和密码。。此外,还有大量关于如何使用standard.net的smtp类实现这一点的工作示例。。试着在谷歌上搜索一下如何使用电子邮件发送到gmailsmtp@MethodMan:在调用connect方法后提供用户名和密码。你用过邮箱吗?至于.NETSMTP类:我尝试了这里关于堆栈溢出的四个不同示例。他们都没有工作。它们也会产生类似的身份验证异常。@Sylverac:如果它使用完全不同的框架(MailKit,而不是.NET SMTP类),它怎么可能是重复的?也许这有帮助,client.Connect(“smtp.gmail.com”,465,SecureSocketOptions.SslOnConnect);伟大的请注意,此解决方案适用于“不安全的应用程序”还是不适用?谢谢。:-)