设为首页收藏本站
网站公告 | 这是第一条公告
     

 找回密码
 立即注册
缓存时间00 现在时间00 缓存数据 对自己狠一点,逼自己努力,再过几年你将会感谢今天发狠的自己、恨透今天懒惰自卑的自己。晚安!

对自己狠一点,逼自己努力,再过几年你将会感谢今天发狠的自己、恨透今天懒惰自卑的自己。晚安!

查看: 827|回复: 2

C#实现电子邮件发送功能(支持普通文本,HTML和附件)

[复制链接]

  离线 

TA的专栏

等级头衔

等級:晓枫资讯-列兵

在线时间
0 小时

积分成就
威望
0
贡献
31
主题
29
精华
0
金钱
99
积分
60
注册时间
2023-10-3
最后登录
2025-9-8

发表于 2025-9-1 15:07:50 | 显示全部楼层 |阅读模式
在日常开发或自动化任务中,发送电子邮件仍然是最常用的数据传递方式之一。通过代码发送邮件,不仅可以提高效率,还能实现批量通知、报表推送等功能。本文将介绍如何使用 C# 发送包含普通文本、HTML 正文以及附件的电子邮件,并提供完整的示例代码。
本文使用 Free Spire.Email for .NET,可通过 NuGet 安装:
  1. Install-Package FreeSpire.Email
复制代码
使用 C# 创建邮件消息

Spire.Email 提供
  1. MailAddress
复制代码
  1. MailMessage
复制代码
类来构建邮件内容。你可以轻松添加多个收件人、抄送(Cc)、密送(Bcc)对象,并指定邮件的文本和 HTML 内容。
设置发件人、收件人和邮件内容
代码示例:
  1. using Spire.Email;
  2. using Spire.Email.Smtp;

  3. // 创建发件人和收件人地址
  4. MailAddress from = new MailAddress("Example@gmail.com", "你的名字");
  5. MailAddress to1 = new MailAddress("Example1@gmail.com", "用户1");
  6. MailAddress to2 = new MailAddress("Example@126.com", "用户2");

  7. // 创建邮件消息对象
  8. MailMessage message = new MailMessage(from, to1);
  9. message.To.Add(to2);  // 添加第二个收件人
  10. message.Cc.Add(new MailAddress("Example@icloud.com", "抄送人"));
  11. message.Bcc.Add(new MailAddress("Example@petalmail.com")); // 添加密送人

  12. // 设置邮件主题、HTML 正文和纯文本正文
  13. message.Subject = "月次报告 - 2025年6月";
  14. message.BodyHtml = "<h2 style='color:#2E86C1;'>报告概要</h2><p>请查收附件中的 PDF 报告。</p>";
  15. message.BodyText = "报告概要 - 请查收附件中的 PDF。";
复制代码
该示例同时设置了文本正文和 HTML 正文,客户端将根据支持情况优先显示 HTML 内容。

添加邮件附件

邮件附件可通过
  1. Attachment
复制代码
类添加,例如 PDF 报表、Excel 文件等。
代码示例:
  1. // 添加附件
  2. Attachment attachment = new Attachment(@"Sample.pdf");
  3. message.Attachments.Add(attachment);
复制代码
只需提供文件路径,即可将其添加为邮件附件。

配置 SMTP 并发送邮件

SMTP(简单邮件传输协议)用于将邮件从客户端发送到服务器。Spire.Email 提供
  1. SmtpClient
复制代码
类来连接并发送邮件。
代码示例:
  1. // 配置 SMTP 客户端
  2. SmtpClient smtp = new SmtpClient();
  3. smtp.Host = "smtp.gmail.com";         // SMTP 服务器地址
  4. smtp.Port = 587;                      // TLS 使用的端口号
  5. smtp.Username = "Example@gmail.com";   // 邮箱用户名
  6. smtp.Password = "your_password";         // 应用专用密码
  7. smtp.ConnectionProtocols = ConnectionProtocols.StartTls; // 使用 TLS 加密协议

  8. // 发送邮件
  9. smtp.SendOne(message);
复制代码
注意:Gmail 发送邮件需要启用“应用专用密码”,并确保启用了 SMTP 服务。

完整代码示例

以下是完整的邮件发送代码,整合了所有功能:
  1. using Spire.Email;
  2. using Spire.Email.Smtp;

  3. // 创建发件人和收件人
  4. MailAddress from = new MailAddress("your_email@gmail.com", "你的名字");
  5. MailAddress to1 = new MailAddress("user1@example.com", "用户1");
  6. MailAddress to2 = new MailAddress("user2@example.com", "用户2");

  7. // 创建邮件对象
  8. MailMessage message = new MailMessage(from, to1);
  9. message.To.Add(to2);
  10. message.Cc.Add(new MailAddress("cc@example.com", "抄送人"));
  11. message.Bcc.Add(new MailAddress("bcc@example.com", "密送人"));

  12. // 设置主题和正文
  13. message.Subject = "月次报告 - 2025年6月";
  14. message.BodyHtml = "<h2>报告概要</h2><p>请查收附件中的 PDF 报告。</p>";
  15. message.BodyText = "报告概要 - 请查收附件中的 PDF 文件。";

  16. // 添加附件
  17. Attachment attachment = new Attachment(@"G:\Documents\Sample.pdf");
  18. message.Attachments.Add(attachment);

  19. // 配置 SMTP 客户端并发送邮件
  20. SmtpClient smtp = new SmtpClient();
  21. smtp.Host = "smtp.gmail.com";
  22. smtp.Port = 587;
  23. smtp.Username = "your_email@gmail.com";
  24. smtp.Password = "your_app_password";
  25. smtp.ConnectionProtocols = ConnectionProtocols.StartTls;

  26. smtp.SendOne(message);
复制代码
邮件发送结果:
1.png


总结

通过 Free Spire.Email for .NET,C# 开发者可以轻松实现功能丰富的邮件发送任务,包括:

  • 发送普通文本和 HTML 格式的邮件内容,兼容各种邮件客户端;
  • 支持多个收件人、抄送与密送,满足业务通知需求;
  • 添加附件,适合发送报告、图片、合同等;
  • 配置 SMTP 客户端,支持 Gmail、Outlook、企业邮箱等常见平台。
这些功能适用于自动化报告推送、系统告警通知、用户邮件服务等多种场景。
到此这篇关于C#实现电子邮件发送功能(支持普通文本,HTML和附件)的文章就介绍到这了,更多相关C#发送邮件内容请搜索晓枫资讯以前的文章或继续浏览下面的相关文章希望大家以后多多支持晓枫资讯!

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
晓枫资讯-科技资讯社区-免责声明
免责声明:以上内容为本网站转自其它媒体,相关信息仅为传递更多信息之目的,不代表本网观点,亦不代表本网站赞同其观点或证实其内容的真实性。
      1、注册用户在本社区发表、转载的任何作品仅代表其个人观点,不代表本社区认同其观点。
      2、管理员及版主有权在不事先通知或不经作者准许的情况下删除其在本社区所发表的文章。
      3、本社区的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,举报反馈:点击这里给我发消息进行删除处理。
      4、本社区一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
      5、以上声明内容的最终解释权归《晓枫资讯-科技资讯社区》所有。
http://bbs.yzwlo.com 晓枫资讯--游戏IT新闻资讯~~~

  离线 

TA的专栏

  • 打卡等级:无名新人
  • 打卡总天数:1
  • 打卡月天数:0
  • 打卡总奖励:5
  • 最近打卡:2023-12-01 17:35:27
等级头衔

等級:晓枫资讯-列兵

在线时间
0 小时

积分成就
威望
0
贡献
0
主题
0
精华
0
金钱
19
积分
8
注册时间
2023-11-15
最后登录
2023-12-1

发表于 2025-11-10 12:37:59 | 显示全部楼层
路过,支持一下
http://bbs.yzwlo.com 晓枫资讯--游戏IT新闻资讯~~~

  离线 

TA的专栏

等级头衔

等級:晓枫资讯-列兵

在线时间
0 小时

积分成就
威望
0
贡献
0
主题
0
精华
0
金钱
17
积分
14
注册时间
2022-12-24
最后登录
2022-12-24

发表于 2025-12-12 18:50:56 | 显示全部楼层
顶顶更健康!!!
http://bbs.yzwlo.com 晓枫资讯--游戏IT新闻资讯~~~
严禁发布广告,淫秽、色情、赌博、暴力、凶杀、恐怖、间谍及其他违反国家法律法规的内容。!晓枫资讯-社区
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

1楼
2楼
3楼

手机版|晓枫资讯--科技资讯社区 本站已运行

CopyRight © 2022-2025 晓枫资讯--科技资讯社区 ( BBS.yzwlo.com ) . All Rights Reserved .

晓枫资讯--科技资讯社区

本站内容由用户自主分享和转载自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

如有侵权、违反国家法律政策行为,请联系我们,我们会第一时间及时清除和处理! 举报反馈邮箱:点击这里给我发消息

Powered by Discuz! X3.5

快速回复 返回顶部 返回列表