C# 如何发送电子邮件 - SmtpClient类的配置与使用


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

c# 如何发送电子邮件 - smtpclient类的配置与使用

在 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="/ai/2159">
                            <img src="https://img.php.cn/upload/ai_manual/000/000/000/175680310972968.png" alt="Medeo">
                        </a>
                        <div class="aritcle_card_info">
                            <a href="/ai/2159">Medeo</a>
                            <p>AI视频生成工具</p>
                            <div class="">
                                <img src="/static/images/card_xiazai.png" alt="Medeo">
                                <span>283</span>
                            </div>
                        </div>
                        <a href="/ai/2159" class="aritcle_card_btn">
                            <span>查看详情</span>
                            <img src="/static/images/cardxiayige-3.png" alt="Medeo">
                        </a>
                    </div>
                <p>// 记得释放资源
msg.Dispose();
client.Dispose();

建议始终调用 Dispose(),尤其在循环批量发信时,避免 socket 耗尽。

异常处理与调试建议

SMTP 发送失败通常不是代码问题,而是网络或配置问题。捕获并检查以下异常:

  • SmtpException:如“认证失败”、“邮箱地址被拒绝”、“配额超限”,重点看 e.StatusCodee.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排名  # ssl  # c#  # word  # html  # 防火墙  # app  # 端口  # qq  # iis  # 电子邮件  # ai  # pdf  # outlook  # micro  # 设为  # 发送电子邮件  # 分片 


相关栏目: 【 Google疑问12 】 【 Facebook疑问10 】 【 优化推广96088 】 【 技术知识133117 】 【 IDC资讯59369 】 【 网络运营7196 】 【 IT资讯61894


相关推荐: FullCalendar自定义按钮样式定制指南  鲨鱼剧场app金币获取方法  三角洲行动2025年9月10日摩斯密码分享  如何在vscode中关闭it环境  Excel如何快速合并单元格内容_Excel文本合并与函数操作技巧  微博网页版入口链接 微博网页版在线互动平台  wps文字怎么设置文字环绕图片的方式_wps文字如何设置文字环绕图片方式  Go App Engine 项目结构与包管理深度指南  Symfony路由参数转换器:实体存在性验证与错误处理策略  QQ网站入口直接登录 QQ官方正版登录页面  Excel如何设置动态下拉菜单_Excel表格下拉选项快速方法  Selenium自动化:利用键盘模拟解决复杂日期输入框输入问题  edge浏览器怎么修改语言为中文_Edge界面语言切换教程  鸿蒙单条备忘录如何加密  Magento 2 产品保存事件中安全更新属性的最佳实践  微星主板BIOS怎么调整内存时序_内存参数手动优化BIOS设置教程  悟空浏览器网页版在线工具 悟空浏览器网页版在线平台入口  鼠标没反应了怎么办 无线/有线鼠标失灵的解决方法【详解】  如何在 WordPress 前端实现内容提交:古腾堡编辑器的替代方案与实践  苹果电脑如何快速查看电池状态 苹果电脑电池信息快捷方法  Python csv 模块处理非字符串数据:列表写入 CSV 文件的机制解析  《糖豆》添加舞曲方法  search中maxlength属性用法解析  铁路12306官网登录入口 铁路12306在线购票官方平台  如何在mysql中设计餐饮点餐系统_mysql点餐系统项目实战  VB表达式书写规则解析  圆通快递包裹轨迹查询 圆通速递快件实时位置跟踪  我的世界游戏平台入口 我的世界官方官网直达链接  创建您的便携版VS Code:让配置随身携带  Python高效统计字典嵌套列表值在目标列表中的出现次数  《U校园》学生登录入口2025  J*a中的值传递到底指什么_值传递模型在参数传递中的真正含义说明  J*aScript中高效处理用户输入:从Keyup事件到表单提交的优化实践  word表格如何按某一列内容进行排序_Word表格按列排序方法  Flexbox布局:实现粘性导航与底部页脚的完美结合  《饿了么》拼好饭点外卖教程2025  顺丰快递单号查询寄件人 顺丰寄件人查询入口  路由器DNS怎么设置最快 优化DNS提升上网速度教程  英国搜索:多数英国人认为语言搜索是未来搜索  研招网官方网站正版登录网址_中国研究生招生信息网官网首页  外媒评《燕云十六声》DIY载具新玩法:很像《塞尔达传说王国之泪》!  小米倒班助手添加日历提醒  Animex动漫社社登录官网 Animex动漫社资源社入口直达  12306APP选座怎么选充电位置_12306APP带充电插座座位选择方法与技巧  《随手记》关闭首页消息推送方法  淘口令快速解析技巧  解决Windows上Composer PATH变量冲突导致的命令无法识别问题  excel怎么计算平均值 excel平均函数*ERAGE使用教学  《sketchbook》选中部分图案移动方法  PDF如何批量加注释_PDF多文件批注高亮操作教程 

 2025-12-04

了解您产品搜索量及市场趋势,制定营销计划

同行竞争及网站分析保障您的广告效果

点击免费数据支持

提交您的需求,1小时内享受我们的专业解答。

运城市盐湖区信雨科技有限公司


运城市盐湖区信雨科技有限公司

运城市盐湖区信雨科技有限公司是一家深耕海外推广领域十年的专业服务商,作为谷歌推广与Facebook广告全球合作伙伴,聚焦外贸企业出海痛点,以数字化营销为核心,提供一站式海外营销解决方案。公司凭借十年行业沉淀与平台官方资源加持,打破传统外贸获客壁垒,助力企业高效开拓全球市场,成为中小企业出海的可靠合作伙伴。

 8156699

 13765294890

 8156699@qq.com

Notice

We and selected third parties use cookies or similar technologies for technical purposes and, with your consent, for other purposes as specified in the cookie policy.
You can consent to the use of such technologies by closing this notice, by interacting with any link or button outside of this notice or by continuing to browse otherwise.