c# 使用qq邮箱发送邮件

1、进行qq邮箱设置

进入要进行发送邮件的qq邮箱,点击设置,然后切换至“账户”标签,开启POP3/SMTP服务,

开启后会生成授权码 。

ps:如果忘了授权码,可以在设置中的“账户”标签,重新生成授权码

 

 

 

2、开始代码

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Net.Mail;
using System.Net;

namespace Test
{
    /// <summary>
    /// 邮件发送类
    /// </summary>
    public class MailSender
    {
        public void Send() {
            var mail = new MailMessage();
            mail.From = new MailAddress("from@qq.com");
            mail.To.Add(new MailAddress("to@163.com"));
            mail.CC.Add(new MailAddress("to@163.com"));
            mail.Bcc.Add(new MailAddress("to@163.com"));
            mail.Subject = "测试邮件";
            mail.Body = "<h1>测试邮件,来自呵呵!</h1>";
            mail.IsBodyHtml = true;
            mail.BodyEncoding = Encoding.UTF8;
            mail.SubjectEncoding = Encoding.UTF8;

            SmtpClient smtpClient = new SmtpClient();
            smtpClient.Host = "smtp.qq.com";
            smtpClient.Port = 587;//587或465
            smtpClient.UseDefaultCredentials = false;
            smtpClient.EnableSsl = true;
            smtpClient.Credentials = new NetworkCredential("from@qq.com", "zhlawojtndimbhij");//注意这里的密码不是填你的qq邮箱密码,而是qq邮箱生成的“授权码”
            smtpClient.Send(mail);
        }
    }
}

3、结果

 

ps:

问题的关键在于smtp的端口设置和授权码的获取。

在以往qq可以使用smtp端口号25,通过邮箱账户和邮箱密码进行登录发送。而现在貌似只能使用启用了ssl协议的方式进行加密传输,端口为587或465(未试),从而使得搜索到的大部分代码都不能运行了。希望可以帮助到需要的猿们!

 

posted on 2016-03-11 16:13  xbfspace  阅读(260)  评论(0)    收藏  举报

导航