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(未试),从而使得搜索到的大部分代码都不能运行了。希望可以帮助到需要的猿们!
浙公网安备 33010602011771号