【.NET】几行代码实现自动发送邮件功能

前言:邮件自动发送功能应该场景比较多,例如遇到程序bug、或者运行报告等,补获到就发送邮件提醒。或者其他用途。

以下我用个人QQ邮箱为例,编写一个自动发送邮件的小栗子。Q邮箱需要先开通SMTP服务:首先,你需要登录到QQ邮箱,然后进入“设置” -> “账户” -> “POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务”,并开启SMTP服务。

开始写代码:.

1、创建一个简单的wewbapi项目,并创建一个控制器做测试使用

【.NET】几行代码实现自动发送邮件功能

2、api核心代码

public void SendEmailWithQQ(string toEmail, string subject, string body){    var fromAddress = new MailAddress("yourQQEmail@qq.com", "Your Name");    var toAddress = new MailAddress(toEmail);    string fromPassword = "yourSMTPAuthorizationCode"; // 使用你从QQ邮箱获取的SMTP授权码
    var smtp = new SmtpClient    {        Host = "smtp.qq.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);    }}

subject:这是电子邮件的主题或标题。

body:这是电子邮件的主要内容。

3、我做一个抛出异常的行为,然后捕获异常,并推送给我的企业钉钉邮箱

【.NET】几行代码实现自动发送邮件功能

4、运行程序进行测试

【.NET】几行代码实现自动发送邮件功能

接口执行完毕,看下钉钉收到的邮件内容,OK符合预期

【.NET】几行代码实现自动发送邮件功能

现在正常的也测试一个,不进异常,所以标题就叫123:

【.NET】几行代码实现自动发送邮件功能

企业邮箱设置了拦截,尴尬,收不到了。但是QQ邮箱应该有记录,做了历史保留,看一眼QQ邮箱:

【.NET】几行代码实现自动发送邮件功能

说明邮件是发出去了,但是接收方没收到,大概率是被拦截了。