通过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?