前言:邮件自动发送功能应该场景比较多,例如遇到程序bug、或者运行报告等,补获到就发送邮件提醒。或者其他用途。
以下我用个人QQ邮箱为例,编写一个自动发送邮件的小栗子。Q邮箱需要先开通SMTP服务:首先,你需要登录到QQ邮箱,然后进入“设置” -> “账户” -> “POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务”,并开启SMTP服务。
开始写代码:
1、创建一个简单的wewbapi项目,并创建一个控制器做测试使用
2、api核心代码
代码语言:javascript复制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邮箱:
说明邮件是发出去了,但是接收方没收到,大概率是被拦截了。