5.7.0必须首先发出STARTTLS命令

我正在尝试通过C#发送电子邮件。 虽然我相信我做的一切都是正确的,但它仍然会抛出这个exception:

“SMTP服务器需要安全连接或客户端未经过身份validation。服务器响应为:5.5.1需要身份validation。了解详情”

起初我想,它可能是一个区域/ IP /区域问题……但是当我登录gmail时,没有任何警告。 可以肯定的是,我已经将文件上传到网站以便从那里进行检查,但仍然会出现错误。

比我尝试将端口更改为465.它也没有用。

我首先尝试使用由Google Apps帐户管理的帐户。 所以我认为可能是它,但它不是……

我现在真的没有想法。

你们中有谁有想法?

这是示例代码:

SmtpClient sm = new SmtpClient("smtp.gmail.com",587); sm.Credentials = new NetworkCredential("blabla@gmail.com","**"); sm.UseDefaultCredentials = false; sm.EnableSsl = true; sm.DeliveryMethod = SmtpDeliveryMethod.Network; sm.Send("blabla@gmail.com","blabla2@tr3reklam.com","Test","Test"); 

**注意**我已经检查了帐户名和密码,它们都是正确的。

必须使用Google的设置页面为NetworkCredential使用的Gmail帐户启用“访问安全性较低的应用”。

这毕竟是由两步validation引起的!

这很奇怪,但如果没有打开“允许用户打开2步validation”选项设置为true,我就无法发送任何邮件。

帐户的两步validation仍然是关闭的,但可能允许用户自己选择在后台进行一些安全设置。

我找不到任何关于此的文档,但我现在可以发送…