跳转到主内容
websoft网络软件专家 - 深耕网络技术,打造实用软件!

c# 如何发送邮件

SmtpClient 发送邮件需配置正确服务器、端口、凭据并启用 SSL/TLS;.NET Core 5+ 已过时但可用,推荐 MailKit;HTML 邮件须设 IsBodyHtml=true、用内联样式和 table 布局;附件需注意流生命周期和中文名编码;排查错误优先检查网络、授权码、TLS 版本。 用
SmtpClient
发送纯文本邮件最简单 只要 SMTP 服务器地址、端口、账号密码正确,几行代码就能发出去。注意 .NET Core 5+ 已将
SmtpClient
标记为“过时”,但目前仍可正常使用;若用 .NET 6+ 且追求长期维护,建议迁移到第三方库(如
MailKit
),不过对内部通知类小项目,
SmtpClient
足够快、够稳。 关键点:
SmtpClient
默认不启用 SSL/TLS,但现代邮箱(Gmail、Outlook、 腾讯 企业邮)基本要求
EnableSsl = true
端口不是固定 25:Gmail 用 587(STARTTLS),部分服务器用 465(SSL) 发件人邮箱必须和
Credentials
的用户名一致,否则多数 SMTP 服务会拒信 别把密码硬 编码 在代码里——用
ConfigurationManager
或
IConfiguration
读取
var client = new SmtpClient("smtp.qq.com") { Port = 587, Credentials = new NetworkCredential("your@qq.com", "your-app-password"), EnableSsl = true }; var mail = new MailMessage { From = new MailAddress("your@qq.com"), Subject = "测试邮件", Body = "这是一封纯文本邮件", IsBodyHtml = false }; mail.To.Add("target@example.com"); client.Send(mail);
发送 HTML 邮件要设
IsBodyHtml = true
并注意内联样式 HTML 邮件在客户端渲染差异大,