使用Gmail SMTP和System.Net.Mail发送电子邮件

时间:2011-04-08 01:17:36

标签: .net asp.net vb.net email

  

可能重复:
  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需要身份验证。了解更多信息”

知道为什么吗?

提前致谢。

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

ALSO :我不同意主持人将我的问题标记为另一个帖子的副本 - 该线程只是简单地询问如何通过Gmail发送邮件。我读了那个帖子,并且正在做它所说的一切,但它对我不起作用,所以我发布了错误消息并询问出了什么问题。

我想将读者指向this other thread 这实际上更接近于我的复制,我之前找不到,并且有许多可能有所帮助的建议,除了现在问题已经消失所以我无法测试它。谢谢大家!

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

最有可能的是,您尚未在Gmail帐户中启用弹出功能。如果您想使用gmail smtp功能,则应启用此选项。

enter image description here