通过Gmail在.NET中发送电子邮件
我想用我的Gmail帐户发送电子邮件,而不是依靠主人发送电子邮件。 这些电子邮件是我在我的节目中播放的乐队的个性化电子邮件。 有可能吗?
一定要使用System.Net.Mail
,而不是弃用的System.Web.Mail
。 使用System.Web.Mail
SSL是一件非常糟糕的事情。
using System.Net;
using System.Net.Mail;
var fromAddress = new MailAddress("from@gmail.com", "From Name");
var toAddress = new MailAddress("to@example.com", "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("from@gmail.com", "From Name");
var toAddress = new MailAddress("to@yahoo.com", "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帐户中打开安全性较低的应用程序 。
看起来最近谷歌改变了它的安全政策。 评分最高的答案不再有效,除非您按照此处所述更改帐户设置:https://support.google.com/accounts/answer/6010255?hl = zh-CN
截至2016年3月,谷歌再次改变了设置位置!
链接地址: http://www.djcxy.com/p/8915.html上一篇: Sending email in .NET through Gmail
下一篇: most economic way to display formatted rich text in wpf?