通过Gmail SMTP服务器使用C#发送电子邮件

出于某种原因,接受的答案和其他任何人都不适合我“通过Gmail以.NET发送电子邮件”。 他们为什么不工作?

更新:我已经尝试所有的答案(接受和否则)在另一个问题,但没有一个工作。

我只想知道它是否适用于其他人,否则Google可能会改变某些事情(之前已经发生过)。

当我尝试使用SmtpDeliveryMethod.Network的代码SmtpDeliveryMethod.Network ,我很快收到SmtpException发送(消息)。 消息是

SMTP服务器需要安全连接或客户端未通过身份验证。

服务器响应是:

5.5.1需要验证。 了解更多“< - 严重的是,它结束了。

更新:

这是我很久以前问过的一个问题,并且接受的答案是我已经在不同项目上多次使用过的代码。

我已经在这篇文章和其他EmailSender项目中采用了一些想法来在Codeplex上创建一个EmailSender项目。 它专为可测试性而设计,支持我最喜欢的SMTP服务,如GoDaddy和Gmail。


CVertex,请务必检查您的代码,并且如果没有透露任何内容,请发布它。 我只是在我正在开发的测试ASP.NET网站上启用它,并且它可以工作。

其实,在某些时候,我的代码有问题。 我没有发现它,直到我在控制台程序上有一个更简单的版本,并且看到它正在工作(您担心的没有改变Gmail的一面)。 下面的代码就像您提到的示例一样:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net.Mail;
using System.Net;

namespace ConsoleApplication2
{
    class Program
    {
        static void Main(string[] args)
        {
            var client = new SmtpClient("smtp.gmail.com", 587)
            {
                Credentials = new NetworkCredential("myusername@gmail.com", "mypwd"),
                EnableSsl = true
            };
            client.Send("myusername@gmail.com", "myusername@gmail.com", "test", "testbody");
            Console.WriteLine("Sent");
            Console.ReadLine();
        }
    }
}

我也使用了web.config,http://msdn.microsoft.com/en-us/library/w355a94k.aspx和代码(因为在配置文件:()中没有匹配的EnableSsl )。


以下几乎肯定会成为你问题的答案, 如果所有问题都失败了

我得到了完全相同的错误,结果证明谷歌的新密码强度测量算法已经改变,认为我当前的密码太弱,并没有告诉我一件事情(甚至没有消息或警告)......我怎么发现这个? 那么,我选择更改我的密码以查看它是否有帮助(尝试了其他所有方法都无济于事),并且当我更改密码时,它就起作用了!

然后,为了进行实验,我尝试将密码更改回以前的密码以查看会发生什么情况,并且Gmail实际上并未允许我这样做,理由是“抱歉,我们无法让您保存此更改为您的选择密码太弱“,不会让我回到我的旧密码。 我从中发现它出错了,因为a)您需要每x个月更改一次密码或b)。 正如我之前所说的那样,他们的密码强度算法发生了变化,因此我接受的弱密码未被接受,即使他们在尝试登录ANYWHERE时没有提及此事! 这个(数字2)是最可能的情况,因为我的弱密码大约4个月大,并且它让我可以在Gmail中使用它。

这很糟糕,他们对此一无所知,但它是有道理的。 由于大多数被劫持的电子邮件都是使用gmail之外的软件登录的,我猜想如果您想在Gmail环境之外使用Gmail,则需要使用更强的密码。

我希望这有帮助!


除了上面的其他故障排除步骤之外,我还想补充一点,如果您在Gmail帐户中启用了双因素身份验证(也称为两步验证),则必须生成特定于应用程序的密码并使用新密码生成的密码通过SMTP进行身份验证

要创建一个,请访问:https://www.google.com/settings/并选择授权应用程序和网站以生成密码。

链接地址: http://www.djcxy.com/p/50525.html

上一篇: Sending email through Gmail SMTP server with C#

下一篇: Parsing html tags when displaying text in WPF