小编典典

通过 Gmail 在 .NET 中发送电子邮件

all

我没有依靠我的主机发送电子邮件,而是考虑使用我的 Gmail 帐户发送电子邮件。这些电子邮件是发给我在节目中演奏的乐队的个性化电子邮件。

有可能做到吗?


阅读 165

收藏
2022-02-28

共1个答案

小编典典

一定要使用System.Net.Mail,不要弃用System.Web.Mail。使用
SSLSystem.Web.Mail是一堆乱七八糟的扩展。

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);
}

此外,转到 Google 帐户 > 安全页面并查看 _登录
Google > 两步验证_设置。

  • 如果已启用,则您必须生成一个允许 .NET 绕过两步验证的密码。为此,请点击 Signing in to Google > App passwords,选择 app = Mail 和 device = Windows Computer,最后生成密码。在常量中使用生成的密码,fromPassword而不是您的标准 Gmail 密码。
  • 如果它被禁用,那么您必须打开 不太安全的应用程序访问 ,不推荐!所以最好启用两步验证。
2022-02-28