.NET Core 2.0 应用程序中使用 Gmail SMTP 服务器发送电子邮件是一种常见的需求,特别是在需要实现账户验证、通知服务或简单的邮件通信功能时。本文主要介绍.Net Core 2.0使用Gmail邮箱发送邮件的方法。

1、注册一个免费的Gmail帐户

使用ASP.NET Core和.NET Core Console应用程序发送电子邮件,首先要注册一个Gmail的邮件帐户。

2、ASP.NET Core和.NET Core Console程序发送邮件代码

1)使用的命名空间

using System.Net;
using System.Net.Mail;

2)发送邮件代码

using (var message = new MailMessage())
{
    //收件人
    message.To.Add(new MailAddress("to@email.com", "To Name")); 
    //From地址很重要。是邮件显示来自的邮件地址,也是邮件客户端中点击回复按钮时回复的地址。
    message.From = new MailAddress("from@email.com", "From Name"); 
    //抄送
    message.CC.Add(new MailAddress("cc@email.com", "CC Name"));
    //密件抄送
    message.Bcc.Add(new MailAddress("bcc@email.com", "BCC Name")); 
    message.Subject = "Subject";
    message.Body = "Body";
    message.IsBodyHtml = true;
    //使用using,因为MailMessage实现了IDisposable接口。
    using (var client = new SmtpClient("smtp.gmail.com"))
    {
        client.Port = 587;
	//gmail帐户和密码
        client.Credentials = new NetworkCredential("send-address@gmail.com", "password");
        client.EnableSsl = true;
        client.Send(message);
    }
}

说明:将上面代码中 send-address@gmail.compassword替换成相应的gmail帐户和密码,但尽量不像上述代码一样,写死在代码中,要写到(appsettings.json)配置文件中,并且密码最好加密后存在配置文件中,在程序中进行解密。

3、Gmail 启用不太安全的应用程序

从 2022 年 5 月 30 日起,Google 不再支持使用第三方应用或设备,这些应用或设备要求仅使用您的用户名和密码登录的 Google 帐户。因此,必须为我们的应用程序使用不同的解决方案。为此,需要先为我们的 Gmail 帐户启用两步验证,然后我们可以使用应用密码功能来解决这个问题。

需要要启用两步验证,我们必须:

导航到 Google 帐户 - 将从 (https://myaccount.google.com/) 发送电子邮件的帐户

1)在左侧的菜单中,我们应该选择 Security

2)然后在“登录谷歌”部分下,可以看到两步验证已关闭——所以我们必须点击它

3)单击开始,提供您的密码,并通过提供手机号码确认代码

4)如果一切顺利,应该会看到打开选项,因此只需单击它,此时,已经启用了两步验证,可以返回安全页面。在那里,在相同的“登录谷歌”部分下,可以找到应用专用密码选项设置为无。 

5)必须点击它提供密码,单击选择应用程序菜单,并选择其他(自定义名称)选项,为我们的应用程序提供我们喜欢的任何名称,然后单击“生成”按钮,将为我们生成一个新密码,应该在appsettings.json文件中使用它而不是我们的个人密码。 

有了这个,我们可以再次使用我们的第三方应用程序发送电子邮件。

推荐文档