通过Gmail在.NET中发送电子邮件
时间:2020-03-05 18:44:22 来源:igfitidea点击:
我不是依靠主机发送电子邮件,而是考虑使用我的Gmail帐户发送电子邮件。这些电子邮件是发给我在演出中演奏的乐队的个性化电子邮件。有可能吗?
解决方案
回答
http://www.systemnetmail.com/可能是最荒谬的完整站点,专用于单个.NET名称空间...但是它拥有我们想知道的有关通过.NET发送邮件的所有信息,无论是ASP.NET还是桌面。
http://www.systemwebmail.com/是该帖子中的原始URL,但不应用于.NET 2.0及更高版本。
回答
确保使用System.Net.Mail
,而不是不推荐使用的System.Web.Mail
。使用System.Web.Mail
执行SSL会导致hacky扩展的混乱。
using System.Net; using System.Net.Mail; var fromAddress = new MailAddress("[email protected]", "From Name"); var toAddress = new MailAddress("[email protected]", "To Name"); const string fromPassword = "fromPassword"; const string subject = "Subject"; const string body = "Body"; var smtp = new SmtpClient { Host = "smtp.gmail.com", Port = 587, EnableSsl = true, DeliveryMethod = SmtpDeliveryMethod.Network, UseDefaultCredentials = false, Credentials = new NetworkCredential(fromAddress.Address, fromPassword) }; using (var message = new MailMessage(fromAddress, toAddress) { Subject = subject, Body = body }) { smtp.Send(message); }
回答
上面的答案不起作用。我们必须设置DeliveryMethod = SmtpDeliveryMethod.Network
,否则它将返回"客户端未通过身份验证"错误。另外,超时也是一个好主意。
修改后的代码:
using System.Net.Mail; using System.Net; var fromAddress = new MailAddress("[email protected]", "From Name"); var toAddress = new MailAddress("[email protected]", "To Name"); const string fromPassword = "password"; const string subject = "test"; const string body = "Hey now!!"; var smtp = new SmtpClient { Host = "smtp.gmail.com", Port = 587, EnableSsl = true, DeliveryMethod = SmtpDeliveryMethod.Network, Credentials = new NetworkCredential(fromAddress.Address, fromPassword), Timeout = 20000 }; using (var message = new MailMessage(fromAddress, toAddress) { Subject = subject, Body = body }) { smtp.Send(message); }
回答
这是我的版本:"使用Gmail使用C发送电子邮件"。
using System; using System.Net; using System.Net.Mail; namespace SendMailViaGmail { class Program { static void Main(string[] args) { //Specify senders gmail address string SendersAddress = "[email protected]"; //Specify The Address You want to sent Email To(can be any valid email address) string ReceiversAddress = "[email protected]"; //Specify The password of gmial account u are using to sent mail(pw of [email protected]) const string SendersPassword = "Password"; //Write the subject of ur mail const string subject = "Testing"; //Write the contents of your mail const string body = "Hi This Is my Mail From Gmail"; try { //we will use Smtp client which allows us to send email using SMTP Protocol //i have specified the properties of SmtpClient smtp within{} //gmails smtp server name is smtp.gmail.com and port number is 587 SmtpClient smtp = new SmtpClient { Host = "smtp.gmail.com", Port = 587, EnableSsl = true, DeliveryMethod = SmtpDeliveryMethod.Network, Credentials = new NetworkCredential(SendersAddress, SendersPassword), Timeout = 3000 }; //MailMessage represents a mail message //it is 4 parameters(From,TO,subject,body) MailMessage message = new MailMessage(SendersAddress, ReceiversAddress, subject, body); /*WE use smtp sever we specified above to send the message(MailMessage message)*/ smtp.Send(message); Console.WriteLine("Message Sent Successfully"); Console.ReadKey(); } catch (Exception ex) { Console.WriteLine(ex.Message); Console.ReadKey(); } } } }