2011-04-08 321 views
3

可能重复:
Sending email in .NET through Gmail发送电子邮件与Gmail SMTP和System.Net.Mail

我尝试发送电子邮件与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 protected]", "password") 
     objSMTPClient.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network 
     objSMTPClient.Send(objMailMessage) 

但是,当我尝试使用端口465时,出现异常“操作超时”。 当我尝试使用端口587时,出现异常情况:“SMTP服务器需要安全连接或客户端未通过身份验证。服务器响应为:5.5.1需要身份验证。”

任何想法为什么?

在此先感谢。

更新:这个问题似乎已经解决了今晚。我不知道改变了什么。也许在谷歌方面。无论如何,代码正在运行;我很想知道什么是错的,所以我可以确保它不会再发生,也可以帮助社区,但我无法进入非工作状态,因此我可以尝试并测试它。

ALSO:我主张与我的问题标记为另一个线程的副本的版主不同 - 该线程只是简单地询问如何通过Gmail发送邮件。我读了这个帖子,并且正在做它所说的所有事情,但它并不适合我,所以我发布了错误消息并询问出了什么问题。

我想指出的读者this other thread 这实际上更接近于我的重复,而我不能早发现,并有许多可行的建议,这有可能帮助,但问题是现在没有了所以我无法测试它。谢谢大家!

+0

也许经由SMTP访问被暂时封锁由于可疑活动。请参阅http://stackoverflow.com/questions/1607828/how-to-use-gmail-as-a-free-smtp-server-and-overcome-captcha – Greg 2011-04-10 05:19:09

回答

0

很可能,您的凭据不正确。请注意,您必须使用有效的活跃Gmail帐户,所以这将是形式:在您的Gmail

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

凭证是正确的;我刚刚登录了他们。 – Fred 2011-04-08 06:14:01

+0

我应该说,这不是普通的Gmail帐户,而是一个Google Apps帐户。当我使用我的普通Gmail帐户试用我的代码时,它*起作用*;只有Google Apps帐户没有。 – Fred 2011-04-08 06:16:13

+0

@Fred,在这种情况下不应该成为问题 - 请参阅http://mail.google.com/support/bin/answer.py?answer=78799。为什么不尝试在一些邮件客户端(如outlook)中使用相同的设置来配置帐户。 – VinayC 2011-04-08 07:54:48

0

最可能的是,你还没有启用弹出功能帐户。如果您想使用Gmail的SMTP功能,然后这个选项应该被启用。

enter image description here

+0

谢谢,但POP已启用。可能是什么问题呢? – Fred 2011-04-08 06:13:38

+0

我应该补充说这不是普通的Gmail帐户,而是一个Google Apps帐户。当我使用我的普通Gmail帐户试用我的代码时,它*起作用*;只有Google Apps帐户没有。 – Fred 2011-04-08 06:14:49