前言:邮件自动发送功能应该场景比较多,例如遇到程序bug、或者运行报告等,补获到就发送邮件提醒。或者其他用途。
以下我用个人QQ邮箱为例,编写一个自动发送邮件的小栗子。Q邮箱需要先开通SMTP服务:首先,你需要登录到QQ邮箱,然后进入“设置” -> “账户” -> “POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务”,并开启SMTP服务。
开始写代码:.
1、创建一个简单的wewbapi项目,并创建一个控制器做测试使用

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、我做一个抛出异常的行为,然后捕获异常,并推送给我的企业钉钉邮箱

4、运行程序进行测试

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

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

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

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