在C#项目开发中,实现邮件发送功能时,FluentEmail是一个十分实用的类库,它采用流畅的链式API设计,大幅简化了邮件发送的编码流程,避免了传统邮件发送代码的繁杂配置。下面我们就来详细介绍如何在C#项目中使用FluentEmail完成邮件发送。

FluentEmail安装步骤
首先需要在项目中安装FluentEmail相关的NuGet包,根据使用的邮件服务器类型选择对应的包,如果是使用SMTP协议发送邮件,需要安装以下两个包:
- FluentEmail.Core
- FluentEmail.Smtp
可以通过NuGet包管理器控制台执行以下命令安装:
// 安装核心包 Install-Package FluentEmail.Core // 安装SMTP发送支持包 Install-Package FluentEmail.Smtp
基础邮件发送实现
安装完成依赖后,就可以编写基础的邮件发送代码了,首先需要配置SMTP服务器的相关信息,然后通过链式调用设置邮件的各项内容。
using FluentEmail.Core;
using FluentEmail.Smtp;
using System.Net.Mail;
class EmailHelper
{
public static void SendBasicEmail()
{
// 配置SMTP客户端,这里以QQ邮箱为例,实际使用时替换为自己的SMTP配置
var smtpClient = new SmtpClient("smtp.qq.com")
{
Port = 587,
Credentials = new System.Net.NetworkCredential("your_email@ipipp.com", "your_email_password"),
EnableSsl = true
};
// 初始化FluentEmail的发送器
Email.DefaultSender = new SmtpSender(smtpClient);
// 创建并发送邮件
var email = Email
.From("your_email@ipipp.com") // 发件人邮箱
.To("receiver@ipipp.com") // 收件人邮箱
.Subject("FluentEmail测试邮件") // 邮件主题
.Body("这是使用FluentEmail发送的一封测试邮件,内容仅为演示。") // 邮件正文
.Send();
// 判断发送结果
if (email.Successful)
{
Console.WriteLine("邮件发送成功");
}
else
{
Console.WriteLine("邮件发送失败,错误信息:" + string.Join(",", email.ErrorMessages));
}
}
}
发送带附件的邮件
FluentEmail支持方便地添加附件,只需要在链式调用中使用Attach方法即可,以下是添加单个附件的示例:
using FluentEmail.Core;
using FluentEmail.Smtp;
using System.Net.Mail;
class EmailHelper
{
public static void SendEmailWithAttachment()
{
var smtpClient = new SmtpClient("smtp.qq.com")
{
Port = 587,
Credentials = new System.Net.NetworkCredential("your_email@ipipp.com", "your_email_password"),
EnableSsl = true
};
Email.DefaultSender = new SmtpSender(smtpClient);
var email = Email
.From("your_email@ipipp.com")
.To("receiver@ipipp.com")
.Subject("带附件的FluentEmail测试邮件")
.Body("这封邮件包含了一个附件,请查收。")
// 添加附件,参数为附件文件路径
.Attach(new Attachment("D:/test.txt"))
.Send();
if (email.Successful)
{
Console.WriteLine("带附件的邮件发送成功");
}
else
{
Console.WriteLine("邮件发送失败,错误信息:" + string.Join(",", email.ErrorMessages));
}
}
}
发送HTML格式邮件
如果需要发送富文本格式的邮件,只需要将Body方法的第二个参数设置为true,第一个参数传入HTML内容即可:
using FluentEmail.Core;
using FluentEmail.Smtp;
using System.Net.Mail;
class EmailHelper
{
public static void SendHtmlEmail()
{
var smtpClient = new SmtpClient("smtp.qq.com")
{
Port = 587,
Credentials = new System.Net.NetworkCredential("your_email@ipipp.com", "your_email_password"),
EnableSsl = true
};
Email.DefaultSender = new SmtpSender(smtpClient);
string htmlContent = @"
<h1>欢迎使用FluentEmail</h1>
<p>这是一封HTML格式的邮件,支持富文本样式。</p>
<ul>
<li>支持自定义字体</li>
<li>支持插入图片链接</li>
<li>支持表格等复杂布局</li>
</ul>";
var email = Email
.From("your_email@ipipp.com")
.To("receiver@ipipp.com")
.Subject("HTML格式FluentEmail测试邮件")
.Body(htmlContent, true) // 第二个参数true表示内容为HTML格式
.Send();
if (email.Successful)
{
Console.WriteLine("HTML邮件发送成功");
}
else
{
Console.WriteLine("邮件发送失败,错误信息:" + string.Join(",", email.ErrorMessages));
}
}
}
常见问题说明
在使用FluentEmail发送邮件时,需要注意以下几点:
- SMTP服务器的地址、端口和加密方式需要根据自己使用的邮箱服务商配置,不同服务商的参数不同
- 部分邮箱需要开启SMTP服务并获取授权码,不能直接使用邮箱登录密码作为凭证
- 如果发送失败,可以查看返回的
ErrorMessages集合,里面会包含具体的错误原因 - 批量发送邮件时,可以循环调用
To方法添加多个收件人,或者使用CC、BCC方法添加抄送和密送收件人
C#FluentEmail发送邮件邮件服务修改时间:2026-06-29 15:42:33