• .NET Core如何实现发送邮件功能
  • 发布于 2个月前
  • 366 热度
    0 评论

前言

邮件自动发送功能应该场景比较多,例如遇到程序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)
{
    // 堆代码 duidaima.com
    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邮箱:

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