C#使用smtp邮箱服务模拟发送邮件

  QQ邮箱的第三方客户端服务,可以让我们很轻松地在我们自己的小程序中调用QQ邮箱来进行收发邮件。当然需要进行一些设置获取授权码。

1、开启SMTP服务,相当于授权过程(开启后,才可以通过这个模拟发送)

位置: 设置--> 账号--> 账号安全--> POP3/SMTP服务 -->开启

 通过短信验证后

 获取SMTP服务的授权码(发送邮件的授权信息,这个很重要)

2、编写发送邮箱邮件代码(引用:System.Net,System.Net.Mail)

    /// <summary>
    /// 邮件发送帮助类
    /// </summary>
    public class SMTPSendHelper
    {
        /// <summary>
        /// 通过客户端发送邮件信息(如果发件人使用QQ邮箱,那么对应的smtpService需改成smtp.qq.com)
        /// 前提:发件人需要到邮箱中启用第三方客户端服务,位置:设置-->账户-->POP3/SMTP服务 -->开启,获取邮箱授权码
        /// </summary>
        /// <param name="senderEmail">发件人邮箱</param>
        /// <param name="authCode">发件人邮箱授权码</param>
        /// <param name="receiverEmail">收件人邮箱</param>
        /// <param name="emailTitle">邮件标题</param>
        /// <param name="emailContent">邮件内容</param>
        /// <param name="smtpService">邮件服务名:smtp.qq.com </param>
        public static void SendEmailBySMTP(string senderEmail,string authCode,string receiverEmail,string emailTitle,string emailContent,string smtpService)
        {          
            //实例化一个发送邮件类
            MailMessage mailMsg = new MailMessage();
            //发件人邮箱地址
            mailMsg.From = new MailAddress(senderEmail);
            //收件人邮箱地址
            mailMsg.To.Add(new MailAddress(receiverEmail));
            //邮件标题的编码格式
            mailMsg.SubjectEncoding = Encoding.UTF8;
            //邮件标题
            mailMsg.Subject = emailTitle;
            //邮件内容的编码格式
            mailMsg.BodyEncoding = Encoding.UTF8;
            //邮件内容
            mailMsg.Body = emailContent;
            //是否是html邮件
            mailMsg.IsBodyHtml = true;
            //邮件优先级
            mailMsg.Priority = MailPriority.High;
            //实例化一个SmtpClient类
            SmtpClient client = new SmtpClient();
            //设置邮件服务名,这里使用的是QQ邮箱,所以是smtp.qq.com, 若使用163邮箱,则是 smtp.163.com
            client.Host = smtpService;
            //设置邮件端口
            client.Port = 587; 
            //使用安全加密连接
            client.EnableSsl = true;
            //不和请求一块发送
            client.UseDefaultCredentials = false;
            //验证发件人身份(发件人邮箱,邮箱生成的授权码)
            client.Credentials = new NetworkCredential(senderEmail, authCode);
            //发送
            client.Send(mailMsg);
        }
    }

3、调用发送邮箱邮件代码

 //测试发送邮件
 SMTPSendHelper.SendEmailBySMTP("1442398694@qq.com", "fjdmmctbocdljbfc", "3239127208@qq.com", "测试邮件","测试邮件内容:htttp://www.baidu.com", "smtp.qq.com");

4、发送后效果

 

经过测试,可以发送到QQ邮箱、网易163邮箱、雅虎邮箱,其他邮箱未验证 

参考网址:

https://www.cnblogs.com/ZxtIsCnblogs/p/8301819.html

https://blog.csdn.net/qq_39491295/article/details/83578376

posted @ 2021-10-14 09:56  小小邪  阅读(972)  评论(0编辑  收藏  举报