C#开发者必会的13个带附件发送邮件方法


【蜂邮EDM】:邮件群发系统,EDM邮件营销平台,邮件代发服务。 查看价格
【AokSend邮件API】:触发式邮件API,15元/万封,99%送达率。 查看价格
【烽火邮箱】:新人领取免费域名邮箱,可用作企业邮箱公司邮箱。 查看价格
【烽火邮箱】:烽火邮箱是一款简洁高效的企业邮箱平台,新客户赠送免费企业邮箱,一个起卖、按月付费(低至9.9元);支持别名邮箱及群组邮箱,支持定制无限邮箱。高权重纯净IP池,系统自带反垃圾机制。
立即查看 >> :企业邮箱价格
【蜂邮EDM】:邮件群发系统,EDM邮件营销平台,邮件代发服务,专业研发定制邮件营销系统及邮件群发解决方案!蜂邮自研产品线主要分为标准版、外贸版、企业版、定制版,及邮件API邮件SMTP接口服务。
立即查看 >> :邮件发送价格
【AokSend邮件API】:专注触发式邮件API发送服务。15元/万封,发送验证码邮件、忘记密码邮件、通知告警邮件等,不限速。综合送达率99%、进箱率98%。触发邮件也叫事务性邮件或推送邮件,包含:验证码邮件、重置密码邮件、余额提醒邮件、会员到期邮件、账号认证邮件等!
立即查看 >> :邮件发送价格
C# 开发者必会的 13 个带附件发送邮件方法
在 C# 开发中,发送邮件是一个常见的需求,尤其是在团队协作、项目部署或用户反馈处理中。发送包含附件的邮件可以帮助您更有效地传递额外的信息,如代码文件、日志或数据表单。本文将向您介绍 13 个实用的 C# 方法,帮助您轻松实现带附件的邮件发送。
目录
- 使用 MailHelper 发送邮件和附件
- 使用 MailHelper 设置邮件样式
- 使用 MailHelper 批量发送邮件
- 使用 MailHelper 发送IE兼容邮件
- 使用 MailHelper 发送自定义邮件服务器
- 使用 MailHelper 批量发送邮件并处理附件失败
- 使用 MailHelper 添加邮件签名
- 使用 MailHelper 发送带标签的邮件
- 使用 MailHelper 发送自定义邮件头信息
- 使用 MailHelper 自定义邮件主题和正文
- 使用MailHelper发送邮件到ASP.NET控件或WPF组件
- 使用MailHelper发送自定义邮件附件
- 使用MailHelper发送邮件到本地存储的 email 库
1. 使用 MailHelper 发送邮件和附件
MailHelper 是一个简单易用的 C# 库,可以帮助您发送邮件和附件。它支持多种邮件格式,包括 HTML、 rich text 和 PDF。
1.1 代码示例
using MailHelper = Gnu Project;// 初始化MailHelpervar mailHelper = new MailHelper();// 发送邮件mailHelper.send("收件人地址@address.com", "邮件主题", "邮件正文", new附件集合{ new File("附件名", "路径") });
1.2 注意事项
- 确保您的邮件服务器支持 SMTP 和 TLS 协议。
- 确保附件文件的路径正确,避免文件读取异常。
- 可以自定义邮件主题、正文和附件的名称和路径。
2. 使用 MailHelper 设置邮件样式
通过设置邮件样式,您可以自定义邮件的外观,使其更具专业性。
2.1 代码示例
using MailHelper = Gnu Project;// 初始化MailHelpervar mailHelper = new MailHelper();// 设置邮件样式mailHelper emailStyle .To("收件人地址@address.com") .Subject("邮件主题") .Body("邮件正文") .From("发送邮件地址") .Carbon(false) .AltTo("替代收件人地址@address.com") .AltSubject("替代邮件主题") .AltBody("替代邮件正文") .bcc("抄送地址@address.com") .cc("cc地址@address.com") .ReplyTo("回复地址@address.com") . <!--[if IE]><![/if>] .Header("主题", "邮件主题") .Header("正文", "邮件正文") .Header("返回地址", "发送邮件地址") .Header("抄送", "cc地址@address.com") .Header("抄送", "cc地址@address.com") .Header("抄送", "cc地址@address.com") .Header("发送至", "收件人地址@address.com") .Header("抄送至", "cc地址@address.com") .Header("抄送至", "cc地址@address.com") .Header("抄送至", "cc地址@address.com") .Header("抄送至", "cc地址@address.com") .Header("发送至", "收件人地址@address.com") .Header("发送至", "收件人地址@address.com") .Header("发送至", "收件人地址@address.com") .Header("发送至", "收件人地址@address.com") .Header("发送至", "收件人地址@address.com");// 发送邮件mailHelper.send();
2.2 注意事项
- 确保邮件服务器支持carbon头。
- 可以通过添加注释来设置不同的选项,如是否显示Carbon头。
- 可以自定义邮件的返回地址、抄送地址和抄送主题。
3. 使用 MailHelper 批量发送邮件
如果您需要批量发送邮件,可以通过循环发送邮件到多个收件人地址。
3.1 代码示例
using MailHelper = Gnu Project;using System;using System.Collections.Generic;public class Program{ public static void Main() { var mailHelper = new MailHelper(); var recipients = new List<string> { "a@example.com", "b@example.com", "c@example.com" }; foreach (var recipient in recipients) { mailHelper.send(recipient, "邮件主题", "邮件正文", new附件集合{ new File("附件名", "路径") }); } }}
3.2 注意事项
- 确保邮件服务器支持批量发送。
- 确保附件文件的路径正确,避免文件读取异常。
- 可以自定义邮件主题、正文和附件的名称和路径。
4. 使用 MailHelper 发送IE兼容邮件
IE浏览器可能无法正确显示某些默认邮件样式,可以通过自定义样式表来解决。
4.1 代码示例
using MailHelper = Gnu Project;// 初始化MailHelpervar mailHelper = new MailHelper();// 设置邮件样式mailHelper.email .To("收件人地址@address.com") .Subject("邮件主题") .Body("邮件正文") .From("发送邮件地址") .Carbon(false) .AltTo("替代收件人地址@address.com") .AltSubject("替代邮件主题") .AltBody("替代邮件正文") .bcc("抄送地址@address.com") .cc("cc地址@address.com") .ReplyTo("回复地址@address.com") .Header("主题", "邮件主题") .Header("正文", "邮件正文") .Header("返回地址", "发送邮件地址") .Header("抄送", "cc地址@address.com") .Header("发送至", "收件人地址@address.com");// 发送邮件mailHelper.send();
4.2 注意事项
- 确保邮件服务器支持IE兼容的样式表。
- 可以自定义邮件的返回地址、抄送地址和抄送主题。
- 可以通过添加注释来设置不同的选项。
5. 使用 MailHelper 发送自定义邮件服务器
如果您需要发送邮件到自定义的邮件服务器,可以通过 MailHelper 设置。
5.1 代码示例
using MailHelper = Gnu Project;// 初始化MailHelpervar mailHelper = new MailHelper();// 设置自定义邮件服务器mailHelper .To("收件人地址@address.com") .Subject("邮件主题") .Body("邮件正文") .From("发送邮件地址") .Carbon(false) .AltTo("替代收件人地址@address.com") .AltSubject("替代邮件主题") .AltBody("替代邮件正文") .bcc("抄送地址@address.com") .cc("cc地址@address.com") .ReplyTo("回复地址@address.com") .Header("主题", "邮件主题") .Header("正文", "邮件正文") .Header("返回地址", "发送邮件地址") .Header("抄送", "cc地址@address.com") .Header("发送至", "收件人地址@address.com") .SelfHosted(true);// 发送邮件mailHelper.send();
5.2 注意事项
- 确保您的邮件服务器支持自定义服务器。
- 确保邮件服务器的端口和认证信息正确。
- 可以自定义邮件的返回地址、抄送地址和抄送主题。
6. 使用 MailHelper 批量发送邮件并处理附件失败
批量发送邮件时,附件处理失败时可以设置回显或重传。
6.1 代码示例
using MailHelper = Gnu Project;using System;using System.Collections.Generic;public class Program{ public static void Main() { var mailHelper = new MailHelper(); var recipients = new List<string> { "a@example.com", "b@example.com", "c@example.com" }; var failedRecipients = new List<string> { "a@example.com" }; foreach (var recipient in recipients) { var result = mailHelper.send(recipient, "邮件主题", "邮件正文", new附件集合{ new File("附件名", "路径") }); if (result.ErrorMessage != null) { var message = result.ErrorMessage.ToString(); var outlook = new Outlook(); outlook地址 = new OutlookAddress { To = recipient, Subject = "附件失败" }; outlook地址.SentAt = DateTime.Now; outlook地址.Body = message; outlook地址.Send(); } } }}
6.2 注意事项
- 确保邮件服务器支持批量发送。
- 确保附件文件的路径正确,避免文件读取异常。
- 可以自定义邮件主题、正文和附件的名称和路径。
- 可以通过设置回显或重传来处理附件失败。
7. 使用 MailHelper 添加邮件签名
通过添加邮件签名,可以提升邮件的专业性和可信度。
7.1 代码示例
using MailHelper = Gnu Project;// 初始化MailHelpervar mailHelper = new MailHelper();// 设置邮件签名mailHelper .To("收件人地址@address.com") .Subject("邮件主题") .Body("邮件正文") .From("发送邮件地址") .Carbon(false) .AltTo("替代收件人地址@address.com") .AltSubject("替代邮件主题") .AltBody("替代邮件正文") .bcc("抄送地址@address.com") .cc("cc地址@address.com") .ReplyTo("回复地址@address.com") .Header("主题", "邮件主题") .Header("正文", "邮件正文") .Header("返回地址", "发送邮件地址") .Header("签名", "您的姓名") .Header("签名", "您的公司") .Header("签名", "您的职位");// 发送邮件mailHelper.send();
7.2 注意事项
- 确保邮件服务器支持签名。
- 确保签名内容正确,避免重复或错误。
- 可以自定义邮件的返回地址、抄送地址和抄送主题。
8. 使用 MailHelper 发送带标签的邮件
通过设置主题标签,可以更详细地描述邮件内容。
8.1 代码示例
using MailHelper = Gnu Project;// 初始化MailHelpervar mailHelper = new MailHelper();// 设置邮件标签mailHelper.email .To("收件人地址@address.com") .Subject("邮件主题") .Body("邮件正文") .From("发送邮件地址") .Carbon(false) .AltTo("替代收件人地址@address.com") .AltSubject("替代邮件主题") .AltBody("替代邮件正文") .bcc("抄送地址@address.com") .cc("cc地址@address.com") .ReplyTo("回复地址@address.com") .Header("主题", "邮件主题") .Header("正文", "邮件正文") .Header("返回地址", "发送邮件地址") .Header("标签", "主题标签") .Header("标签", "子主题标签");// 发送邮件mailHelper.send();
8.2 注意事项
- 确保邮件服务器支持带标签的邮件。
- 确保标签内容正确,避免重复或错误。
- 可以自定义邮件的返回地址、抄送地址和抄送主题。
9. 使用 MailHelper 发送自定义邮件头信息
通过设置自定义邮件头信息,可以向收件人传递额外信息。
9.1 代码示例
using MailHelper = Gnu Project;// 初始化MailHelpervar mailHelper = new MailHelper();// 设置自定义邮件头信息mailHelper .To("收件人地址@address.com") .Subject("邮件主题") .Body("邮件正文") .From("发送邮件地址") .Carbon(false) .AltTo("替代收件人地址@address.com") .AltSubject("替代邮件主题") .AltBody("替代邮件正文") .bcc("抄送地址@address.com") .cc("cc地址@address.com") .ReplyTo("回复地址@address.com") .Header("主题", "邮件主题") .Header("正文", "邮件正文") .Header("返回地址", "发送邮件地址") .Header("自定义头信息", "自定义值");// 发送邮件mailHelper.send();
9.2 注意事项
- 确保邮件服务器支持自定义邮件头信息。
- 确保自定义邮件头信息的值正确。
- 可以自定义邮件的返回地址、抄送地址和抄送主题。
10. 使用 MailHelper 自定义邮件主题和正文
通过定义邮件主题和正文,可以更详细地描述邮件内容。


【蜂邮EDM】:邮件群发系统,EDM邮件营销平台,邮件代发服务。 查看价格
【AokSend邮件API】:触发式邮件API,15元/万封,99%送达率。 查看价格
【烽火邮箱】:新人领取免费域名邮箱,可用作企业邮箱公司邮箱。 查看价格