C#发送邮件之QQ邮箱

QQ邮箱大家基本是人手一个,但是如果需要在我们的代码中使用的话,需要做一下简单的设置。

设置如下:

  1. 进入QQ邮箱的设置页面,点击账户,然后将以下功能开启.

C#发送邮件之QQ邮箱

  1. 上面的帮助链接有兴趣的话也可以了解下

  2. 设置好之后可以点击生成授权码,这个授权码到时候就会作为我们程序的登录密码使用。

  3. 设置完成

实现功能:

  • 使用QQ邮箱发送邮件

开发环境:

  • 开发工具:Visual Studio 2013
  • .NET Framework版本:4.5

实现代码:

/// <summary>
        /// 邮件发送
        /// </summary>
        /// <param name="sendAddr">发送邮箱地址</param>
        /// <param name="sendPwd">发送邮箱密码(qq邮箱授权码)</param>
        /// <param name="title">邮件标题</param>
        /// <param name="content">邮件内容</param>
        /// <param name="toAddr">发送到邮箱的地址</param>
        /// <param name="ccAddr">抄送邮箱的地址</param>
        /// <param name="host">SMTP 事务的主机的名称或 IP 地址</param>
        /// <param name="port">SMTP 事务的主机的端口</param>
        /// <returns></returns>
        static bool Send(string sendAddr, string sendPwd, string title, string content, List<string> toAddr, List<string> ccAddr, int port=25, string host = "smtp.qq.com")
        {
            try
            {
                MailMessage mail = new MailMessage();
                mail.From = new MailAddress(sendAddr);
                mail.Subject = title;
                mail.Body = content;
              //mail.IsBodyHtml = true;
                foreach (string s in toAddr)
                {
                    mail.To.Add(s);
                }
                foreach (string s in ccAddr)
                {
                    mail.CC.Add(s);
                }
                SmtpClient smtp = new SmtpClient(host, port);
                smtp.Credentials = new NetworkCredential(sendAddr, sendPwd);
                smtp.EnableSsl = true;
                smtp.Send(mail);
                return true;
            }
            catch
            {
                return false;
            }
        }
//然后这里直接调用即可
bool isSend = Send("邮箱账号", "授权码", "邮件标题", "邮件内容", new List<string> { "发送人" }, new List<string>());
            Console.WriteLine(isSend ? "发送成功" : "发送失败");
            Console.ReadKey();

//同时加入一个可以插入图片的方式,将上面的mail.IsBodyHtml = true;解注
//然后这里提一下,放到服务器使用的时候,建议使用SSL,587端口,即
 string imgData = "<br/><DIV><IMG src=\"data:image/ png;base64,"+base64+"\"></IMG></DIV>";
Send("邮箱账号", "授权码", "邮件标题", "邮件内容", new List<string> { "发送人" }, new List<string>(),587);