5.7.0必须首先发出STARTTLS命令

时间:2015-02-22 22:51:45

标签: c# ssl smtp gmail smtpclient

我试图通过C#发送电子邮件。虽然我相信我已经做好了一切,但它仍然会引发这种异常:

" SMTP服务器需要安全连接或客户端未经过身份验证。服务器响应为:5.5.1需要身份验证。在"

了解详情

起初我想,这可能是一个区域/ 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");

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

3 个答案:

答案 0 :(得分:1)

必须使用Google's settings page为NetworkCredential使用的Gmail帐户启用“访问安全性较低的应用”。

答案 1 :(得分:0)

毕竟是由两步验证引起的!

奇怪,但没有打开"允许用户打开"选项设置为true,我无法发送任何邮件。

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

我无法找到关于此的任何文档,但我现在可以发送...

答案 2 :(得分:0)

输入代码sm.UseDefaultCredentials = false;在sm.Credentials = ...之前