出于某种原因,既不是接受的答案,也没有其他工作为我“通过Gmail在。net发送电子邮件”。为什么它们不会起作用?
更新:我已经在另一个问题中尝试了所有的答案(接受的和其他的),但没有一个有效。
我只是想知道它是否适用于其他人,否则谷歌可能已经改变了一些东西(以前发生过)。
当我尝试使用SmtpDeliveryMethod的代码段时。网络,我很快收到一个SmtpException发送(消息)。信息是
SMTP服务器需要安全连接,否则客户端未经过身份验证。
服务器的回复是:
5.5.1认证要求在“<——说真的,它到此结束。
更新:
这是我很久以前问过的一个问题,公认的答案是我在不同的项目中使用过很多很多次的代码。
我采用了这篇文章和其他EmailSender项目中的一些想法,在Codeplex上创建了一个EmailSender项目。它是为可测试性而设计的,支持我最喜欢的SMTP服务,如GoDaddy和Gmail。
这段代码适用于我,也允许在gmail访问不安全的应用程序,并在2个步骤中删除身份验证:
Host = "smtp.gmail.com",
Port = 587,
EnableSsl = true,
DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network,
UseDefaultCredentials = false,
Credentials = new NetworkCredential(MailAddress, Password)
这是另一个可能的解决方案。我有类似的问题连接到gmail通过IMAP。在尝试了我遇到的所有解决方案之后,你将在这里和其他地方读到SO(例如。启用IMAP,启用不太安全的邮件访问,使用https://accounts.google.com/b/0/displayunlockcaptcha等),我实际上又建立了一个新的gmail帐户。
在我最初的测试中,也就是我创建的第一个gmail帐户中,我已经连接到我的gmail主帐户。这导致了不稳定的行为,其中错误的帐户被谷歌引用。例如,运行https://accounts.google.com/b/0/displayunlockcaptcha打开了我的主帐户,而不是我为此目的而创建的帐户。
因此,当我创建了一个新帐户,并没有将它连接到我的主帐户,在遵循上述所有适当的步骤后,我发现它工作得很好!
我还没有证实这一点。转载),但它显然为我做到了……希望能有所帮助。