新闻中心
C# 如何发送电子邮件 - SmtpClient类的配置与使用
C#中用SmtpClient发邮件关键在于正确配置SMTP服务器、端口、加密方式及凭据:Gmail用587+STARTTLS+应用专用密码,QQ邮箱用587/465+授权码,Outlook用587+App Password,163用465+授权码;需注意EnableSsl与端口匹配,避免认证失败。

在 C# 中发送电子邮件,SmtpClient 是最常用的方式(尽管 .NET 6+ 已标记为过时,但仍在广泛使用)。关键不在于“能不能发”,而在于配置是否正确、凭据是否有效、端口与加密方式是否匹配服务商要求。
SMTP 服务器基础配置要点
不同邮箱服务商的 SMTP 设置差异较大,常见组合如下:
- Gmail:smtp.gmail.com,端口 587(启用 STARTTLS),需开启“应用专用密码”(2FA 开启后)或允许“不够安全的应用”(已逐步弃用)
- Outlook / Hotmail:smtp-mail.outlook.com,端口 587,STARTTLS,账户密码直连(推荐使用 Microsoft App Password)
- QQ 邮箱:smtp.qq.com,端口 587 或 465(465 需用 SSL),必须使用“SMTP 授权码”,不能用登录密码
- 163 邮箱:smtp.163.com,端口 465(SSL)或 25(不推荐),同样需 SMTP 授权码
代
码中正确初始化 SmtpClient
注意:.NET Core 3.0+ 和 .NET 5/6/7+ 中 SmtpClient 已被标记为 [Obsolete],但尚未移除;若追求长期兼容,建议后续迁移到 MailKit。当前仍可稳定使用,配置示例如下:
var client = new SmtpClient("smtp.qq.com")
{
Port = 587,
Credentials = new NetworkCredential("your_email@qq.com", "your_smtp_authorization_code"),
EnableSsl = true // 若用端口 587,设为 true 表示 STARTTLS;若用 465,也设为 true(隐式 SSL)
};⚠️ 常见错误:把 EnableSsl = true 和端口 25 混用,或对 587 端口误设 UseDefaultCredentials = true —— 这会导致认证失败。
构造并发送邮件内容
使用 MailMessage 设置收件人、主题、正文和附件:
var msg = new MailMessage
{
From = new MailAddress("your_email@qq.com", "发件人昵称"),
Subject = "测试邮件",
Body = "这是一封来自 C# 的测试邮件。",
IsBodyHtml = false // 设为 true 可发送 HTML 内容
};
msg.To.Add("receiver@example.com");
msg.CC.Add("cc@example.com");
<p>// 添加附件(可选)
msg.Attachments.Add(new Attachment(@"C:\temp\report.pdf"));</p><p>client.Send(msg); // 同步发送(.NET 6+ 推荐用 SendMailAsync)</p>
<div class="aritcle_card">
<a class="aritcle_card_img" href="/xiazai/code/10659">
<img src="https://img.php.cn/upload/webcode/000/000/019/176318640638965.jpg" alt="NopCommerce (ASP.NET商城)">
</a>
<div class="aritcle_card_info">
<a href="/xiazai/code/10659">NopCommerce (ASP.NET商城)</a>
<p>nopCommerce 是一个由ASP.NET多层模式开发的开源电子商城系统,可以自行设置模板、配置灵活、功能强大,它内含一个目录前端和一个管理工具后端。前端包括用户注册、商品购买(可以进行评论)、投票、Blog等,后端有类别管理、产品管理、客户及角色管理、订单管理、纳税管理、国家(地区管理)、邮件发送、消息模板、新闻发布、blog管理,可以对列表数据进行XML导出。</p>
<div class="">
<img src="/static/images/card_xiazai.png" alt="NopCommerce (ASP.NET商城)">
<span>0</span>
</div>
</div>
<a href="/xiazai/code/10659" class="aritcle_card_btn">
<span>查看详情</span>
<img src="/static/images/cardxiayige-3.png" alt="NopCommerce (ASP.NET商城)">
</a>
</div>
<p>// 记得释放资源
msg.Dispose();
client.Dispose();建议始终调用 Dispose(),尤其在循环批量发信时,避免 socket 耗尽。
异常处理与调试建议
SMTP 发送失败通常不是代码问题,而是网络或配置问题。捕获并检查以下异常:
-
SmtpException:如“认证失败”、“邮箱地址被拒绝”、“配额超限”,重点看
e.StatusCode和e.Message - SocketException:说明连不上服务器,检查防火墙、代理、DNS 或端口是否被屏蔽
-
InvalidOperationException:比如未设置
Credentials却尝试发送认证必需的服务器
调试小技巧:用 Telnet 或 PowerShell 测试基础连通性:Test-NetConnection smtp.qq.com -Port 587;开启 client.DeliveryMethod = SmtpDeliveryMethod.Network(默认值,确保不走本地 IIS SMTP)。
基本上就这些。配置对了,发邮件不复杂但容易忽略授权码、端口、SSL 模式三者的对应关系。
以上就是C# 如何发送电子邮件 - SmtpClient类的配置与使用的详细内容,更多请关注其它相关文章!
# 哪些网站可以做seo
# 发邮件
# 如何实现
# 应用程序
# 后端
# 是一个
# 这是
# 关键词排名利搜
# 怎么被营销推广
# 让你
# 设计公司网站优化营销
# 河南企业seo必选
# 辽宁推广全域营销哪家好
# 湖南高端网站建设报价
# 建设机床网站
# 抖音快手关键词排名优化
# seo的效果
# ssl
# c#
# word
# html
# 防火墙
# app
# 端口
# qq
# iis
# 电子邮件
# ai
# pdf
# outlook
# micro
# 设为
# 发送电子邮件
# 分片
相关栏目:
【
科技资讯46185 】
【
网络学院92790 】
相关推荐:
AO3访问入口汇总 AO3网页版同人作品一键直达
HTML空白字符处理机制:渲染、DOM与编码实践
俄罗斯方块最新版入口 俄罗斯方块在线玩官网入口
windows10怎么查看硬盘序列号_windows10硬盘id查询命令
Win10怎么设置静态IP地址 Win10手动配置IP地址步骤【指南】
如何创建独立于主系统的J*a运行环境_隔离式环境搭建策略
MAC的“快捷指令”怎么同步到iPhone_MAC利用iCloud同步所有设备的自动化指令
利用Bokeh CustomJS动态控制DataTable列可见性
Python中如何避免重复条件判断:利用数据结构实现动态逻辑
在Socket.IO连接中实现Access Token自动更新与动态重连
在J*a中如何隐藏复杂性_使用门面模式组织对象交互
C++如何实现一个装饰器模式_C++设计模式之动态地给对象添加额外职责
葱吃多了会怎样 葱吃多了会伤胃吗
网站内容防复制粘贴的实现策略与局限性
ACG动漫手机版官网入口 手机ACG动漫APP在线观看正版
HuggingFaceEmbeddings中向量嵌入维度调整的限制与理解
mcjs网页版在线存档 mcjs云存档登录入口
Tabulator表格中精确实现日期时间排序的指南
AO3官方镜像站点汇总 AO3同人作品网页版直达链接
顺丰快递查询系统 官方正版查询入口
css滚动区域卡顿如何改善_css滚动问题用will-change优化渲染
Windows电脑怎么截图最方便_系统自带截图工具的5种神仙用法【技巧】
cad怎么合并重叠的线段_cad清理重复重叠线条的操作方法
J*a应用集成GitHub CLI与API认证指南
win11开机启动修复循环怎么办 Win11无法进入系统高级启动解决方法【修复】
EMS快递官网app_中国邮政速递物流手机客户端
Windows7怎么硬盘安装 Windows7提取ISO镜像到非系统盘并运行setup.exe实现硬盘直装【教程】
html两个JS只运行一个怎么办_让双JS在html中都运行方法【技巧】
小猿搜题在线学习页面在哪_小猿搜题在线学习中心入口
邮编格式怎么匹配地址_根据邮编格式快速匹配详细地址的技巧
冬*霸灯泡不亮怎么办_浴霸取暖灯一盏不亮的灯座清洁修复法
HTML转PPT成品工具有哪些?HTML网页转PPT成品工具大全
必由学官方平台入口 必由学在线课堂登录地址
蓝湖怎样用切图标注提对接效率_蓝湖用切图标注提对接效率【设计对接】
Win11怎么关闭快速启动_Win11彻底关机设置教程
LINUX怎么设置定时任务_LINUX crontab配置教程
我的世界mc.js免费游戏直接能玩 我的世界mc.js小游戏免费秒玩入口
J*aScript打印功能_j*ascript输出控制
QQ邮箱官方网页版登录 QQ邮箱个人邮箱快速访问
12306选座怎么选到特殊座位_12306特殊座位选择注意事项
J*a递归快速排序中静态变量导致数据累积问题的解决方案
iwriter统一登录平台 iwrite账号密码登录页面
顺丰快递查单号物流信息 顺丰快递小程序查询入口
AO3最新入口2025公告_AO3中文官网合集
微信商城在哪里打开【步骤】
如何在网页中实现特定地点的随机图片展示
J*aScript井字棋(Tic-Tac-Toe)核心交互逻辑实现教程
小红书怎么解除第三方平台绑定_小红书多平台登录解绑方法介绍
QQ邮箱官网登录入口 QQ邮箱网页版邮箱快速登录
html怎么运行外部js文件中的函数_运html外js文件函数法【技巧】


2025-12-04
浏览次数:次
返回列表
码中正确初始化 SmtpClient