C#-WinForm-发送邮件

登录QQ邮箱------设置------开启"POP3/SMTP服务"

登陆QQ邮箱→打开设置→开启"POP3/SMTP服务",获取"授权码"

简单总结一下:

1、使用SmtpClient发送电子邮件是很简单的,只要正确创建了MailMessage对象和SmtpClient就可以很容易的发送出去电子邮件。

2、如果电子邮件服务器需要身份验证【似乎现在都需要身份验证,除非自己配置的】,注意下面这句话:

client.Credentials = .Credentials = new System.Net.NetworkCredential("发件邮箱", "授权码");

邮箱通过第三方发送邮件应该使用授权码,不是登陆密码而是授权码;

邮件发送协议为SMTP,强大的.net类库已经为我们封装好了SMTP协议, 位于System.Net.Mail命名空间之下

主要类:

SmtpClient 使用SMTP协议进行发送邮件,

MailMessage 封装一个邮件,包括发件人地址,收件人地址,SMTP服务器地址等常用设置。

System.Net.NetworkCredential封装用户的用户名和密码,验证凭据类。

MailAddress 邮件地址,发件人或者收件人地址

首先,使用初始化SmtpClient的一些基本设置

cs 复制代码
smtpClient.Host = "smtp.xx.com";    //设置smtp服务器地址,xx代表服务器提供商
smtpClient.Port = 25;               //smtp服务器端口号
smtpClient.EnableSsl = false;      //是否使用SSL加密
smtpClient.UseDefaultCredentials = false;    
smtpClient.Credentials = new NetworkCredential("用户名","密码");   //发件人账户和密码,即是用户凭证
smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;            //传输方式    

再次,构建要发送的邮件内容

cs 复制代码
mailMessage.From = new MailAddress("发件人地址");
//收件人地址十一mailAddressCollection容器,也为群发邮件提供了便利,不断Add收件人地址就可以了
mailMessage.To.Add(new MailAddress("收件人地址")); 
mailMessage.Subject = "邮件主题"; 
mailMessage.Body = "邮件正文";

最后,发送邮件

cs 复制代码
// SmtpClient提供了两个发送函数,一个同步发送Send、一个异步发送SendAsync。不过这个异步发送不是有保证,经常发布出去
 
 smtpClient.Send(mailMessage);
相关推荐
绩隐金几秒前
用AI开了本小说 九折归潮
数据库
heimeiyingwang2 分钟前
【架构实战】MySQL索引优化:从慢查询到毫秒响应
数据库·mysql·架构
得闲喝茶3 分钟前
跨表数据匹配——VLOOKUP、XLOOKUP
大数据·数据库·笔记·信息可视化·数据分析·excel
snow@li20 分钟前
数据库:如何设计最佳索引 / 数据库最佳索引设计指南
数据库
渣渣灰飞39 分钟前
MySQL 系统学习 第二阶段 第四章:DCL(Data Control Language)第二节:权限管理与角色(Role)
数据库·学习·mysql
肖永威1 小时前
金仓数据库麒麟环境SQL终端使用入门实践(增删改查篇)
数据库·sql·金仓数据库
m0_715674431 小时前
2026年医疗行业数据库风险监测产品综合能力排名分析
网络·数据库
渣渣灰飞2 小时前
MySQL 系统学习 第四阶段:MySQL 高级 第一节:索引(Index)
数据库·学习·mysql
山峰哥2 小时前
数据库工程与SQL优化实战指南‌
数据库·sql·oracle·深度优先·宽度优先
品尚公益团队2 小时前
C#在asp.net网页开发中的带cookie登录实现
前端·c#·asp.net