使用 Gmail SMTP 和 System.Net.Mail 发送电子邮件 [重复]

Posted

技术标签:

【中文标题】使用 Gmail SMTP 和 System.Net.Mail 发送电子邮件 [重复]【英文标题】:Sending e-mail with Gmail SMTP and System.Net.Mail [duplicate] 【发布时间】:2011-08-01 03:46:29 【问题描述】:

可能重复:Sending email in .NET through Gmail

我尝试使用 Gmail SMTP 和 System.Net.Mail 发送电子邮件,如下所示:

        Dim objSMTPClient As New System.Net.Mail.SmtpClient("smtp.gmail.com", 465) 'also tried 587
        objSMTPClient.EnableSsl = True
        objSMTPClient.UseDefaultCredentials = False
        objSMTPClient.Credentials = New System.Net.NetworkCredential("email@domain.com", "password")
        objSMTPClient.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network
        objSMTPClient.Send(objMailMessage)

但是,当我尝试使用端口 465 时,我得到一个异常“操作已超时”。 当我尝试使用端口 587 时,出现异常“SMTP 服务器需要安全连接或客户端未通过身份验证。服务器响应为:5.5.1 需要身份验证。了解更多信息”

知道为什么吗?

提前致谢。

更新:问题似乎在今晚解决了。我不知道发生了什么变化。也许是谷歌方面的东西。无论如何,代码都在工作;我很想知道出了什么问题,所以我可以确保它不会再次发生,也可以帮助社区,但我不能让它进入非工作状态,所以我可以尝试并测试它。

ALSO:我不同意版主将我的问题标记为与另一个线程重复的问题——该线程只是一般性地询问如何通过 Gmail 发送邮件。我阅读了那个帖子,并且按照它说的去做,但它对我不起作用,所以我发布了错误消息并询问出了什么问题。

我想向读者指出this other thread 这实际上更接近于我的副本,并且我之前找不到,并且有许多可能的建议可能会有所帮助,只是问题现在已经消失了,所以我无法对其进行测试。谢谢大家!

【问题讨论】:

可能由于可疑活动而暂时阻止了通过 SMTP 的访问。见***.com/questions/1607828/… 【参考方案1】:

很可能,您的 gmail 帐户中没有启用 pop 功能。如果您想使用 gmail smtp 功能,则应启用此选项。

【讨论】:

谢谢,但 POP 已启用。可能是什么问题? 我应该补充一点,这不是一个普通的 Gmail 帐户,而是一个 Google Apps 帐户。当我使用我的常规 Gmail 帐户尝试我的代码时,它有效;只有 Google Apps 帐户没有。【参考方案2】:

很可能,您的凭据不正确。请注意,您必须使用有效的活动 gmail 帐户,因此格式为:

objSMTPClient.Credentials = New System.Net.NetworkCredential("<your_user_name>@gmail.com", "<your_gmail_password>");

【讨论】:

凭据正确;我刚用他们登录。 我应该说,这不是一个普通的 Gmail 帐户,而是一个 Google Apps 帐户。当我使用我的常规 Gmail 帐户尝试我的代码时,它有效;只有 Google Apps 帐户没有。 @Fred,在这种情况下,这应该不是问题 - 请参阅 mail.google.com/support/bin/answer.py?answer=78799。您为什么不尝试在某些邮件客户端(例如 Outlook)中使用相同的设置配置帐户。

以上是关于使用 Gmail SMTP 和 System.Net.Mail 发送电子邮件 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

Rails-使用Gmail和SMTP发送电子邮件

使用 smtp 和 Gmail 的 Phpmailer 无法正常工作 - 连接超时

CakePHP-2.0:如何使用 CakEmail 和 SMTP 设置从 gmail 帐户发送电子邮件?

SMTP使用Gmail发送电子邮件问题

无法通过 telnet 使用 smtp.gmail.com

使用SMTP和Gmail在Django上发送电子邮件