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

在 C# 中发送电子邮件,SmtpClient 是最常用的方式(尽管 .NET 6+ 已标记为过时,但仍在广泛使用)。关键不在于“能不能发”,而在于配置是否正确、凭据是否有效、端口与加密方式是否匹配服务商要求。
不同邮箱服务商的 SMTP 设置差异较大,常见组合如下:
注意:.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/superdesign">
<img src="https://img.php.cn/upload/ai_manual/001/246/273/68d8dc1ac5b35354.png" alt="SuperDesign">
</a>
<div class="aritcle_card_info">
<a href="/ai/superdesign">SuperDesign</a>
<p>开源的UI设计AI智能体</p>
<div class="">
<img src="/static/images/card_xiazai.png" alt="SuperDesign">
<span>216</span>
</div>
</div>
<a href="/ai/superdesign" class="aritcle_card_btn">
<span>查看详情</span>
<img src="/static/images/cardxiayige-3.png" alt="SuperDesign">
</a>
</div>
<p>// 记得释放资源
msg.Dispose();
client.Dispose();建议始终调用 Dispose(),尤其在循环批量发信时,避免 socket 耗尽。
SMTP 发送失败通常不是代码问题,而是网络或配置问题。捕获并检查以下异常:
e.StatusCode 和 e.Message
Credentials 却尝试发送认证必需的服务器调试小技巧:用 Telnet 或 PowerShell 测试基础连通性:Test-NetConnection smtp.qq.com -Port 587;开启 client.DeliveryMethod = SmtpDeliveryMethod.Network(默认值,确保不走本地 IIS SMTP)。
基本上就这些。配置对了,发邮件不复杂但容易忽略授权码、端口、SSL 模式三者的对应关系。
以上就是C# 如何发送电子邮件 - SmtpClient类的配置与使用的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号