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