• 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

    平时多记记,到用时才能看看,记录你的进步,分享你的成果
  • 相关阅读:
    转载Dockerfile 中 RUN, CMD, ENTRYPOINT 的区别
    在linux上通过ssh使用github
    dns服务
    centos6 free 和 centos 7的free 的差异与对比
    无重复字符的最长子串
    go get命令在go mod目录下与正常目录执行的区别
    安装git
    转载 筛子算法之golang实现求素数解析
    Go语言基础之并发
    go之无缓冲channel(通道)和有缓冲channel(通道)
  • 原文地址:https://www.cnblogs.com/xielong/p/15405349.html
Copyright © 2020-2023  润新知