由于某些原因,“ 通过Gmail在.NET中发送电子邮件 ”对我来说都无法使用被接受的答案。他们为什么不工作?
更新:我已经尝试了另一个问题中的所有答案(已接受和其他),但是没有一个起作用。
我只想知道它是否对其他任何人都有效,否则Google可能已经更改了某些内容(以前发生过)。
当我尝试使用的代码段时SmtpDeliveryMethod.Network,我很快在Send(message)上收到SmtpException。消息是
SmtpDeliveryMethod.Network
SMTP服务器需要安全连接,或者客户端未通过身份验证。
服务器响应为:
5.5.1需要身份验证。进一步了解”。
更新:
这是我很久以前问过的一个问题,可接受的答案是我在不同项目上使用过很多次的代码。
我已经采用了本文和其他EmailSender项目中的一些想法,以在Codeplex创建一个EmailSender项目。它旨在实现可测试性,并支持GoDaddy和Gmail等我最喜欢的SMTP服务。
CVertex,请确保检查您的代码,如果没有显示任何内容,请将其发布。我只是在正在使用的测试ASP.NET站点上启用了它,并且它起作用了。
实际上,在某些时候我的代码有问题。我没有发现它,直到在控制台程序上有了一个简单的版本,然后看到它正在工作(您担心的Gmail方面没有任何变化)。下面的代码就像您引用的示例一样工作:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Net.Mail; using System.Net; namespace ConsoleApplication2 { class Program { static void Main(string[] args) { var client = new SmtpClient("smtp.gmail.com", 587) { Credentials = new NetworkCredential("myusername@gmail.com", "mypwd"), EnableSsl = true }; client.Send("myusername@gmail.com", "myusername@gmail.com", "test", "testbody"); Console.WriteLine("Sent"); Console.ReadLine(); } } }
我还结合使用了web.config,http://msdn.microsoft.com/en- us/library/w355a94k.aspx和代码(因为EnableSsl配置文件:()中没有匹配项)来使它工作。
EnableSsl