.NET 帮助

FluentEmail C#(开发者如何使用)

发布 2024年八月13日
分享:

在当今的数字时代,电子邮件仍然是企业和个人沟通的基石。将强大的电子邮件功能集成到ASP.NET Core应用程序中,对于自动化通知、发送新闻简报和促进客户互动至关重要。 流利电子邮件,一个功能强大的 .NET 库,结合 邮件枪 API 密钥,为开发人员提供了一种无缝解决方案,以增强电子邮件的可靠性和可扩展性。本文后面部分还将探讨 IronPDF铁软件(Iron Software) 生成和管理 PDF 文档。

介绍

FluentEmail 简化了在 .NET 应用程序中以编程方式发送多个电子邮件的过程。它提供了一个直观和流畅的界面,用于配置电子邮件消息、管理附件以及处理收件人列表。此库抽象了 SMTP 配置的复杂性,并支持多个模板渲染提供程序和测试电子邮件服务提供商,包括 Mailgun。

FluentEmail.NET 是 .NET Core 生态系统中用于发送电子邮件的流行库,它支持 Razor 电子邮件模板以及用于动态创建电子邮件内容的 Liquid 模板。使用 FluentEmail.NET 的 Razor 模板渲染器,可以利用 Razor 语法的强大功能,创建格式良好、动态的电子邮件内容,并解决布局文件的问题。

以下是如何使用 ASP.NET Core Razor 模板与 FluentEmail.NET 的基本指南。

第一步:安装FluentEmail

首先,您需要通过使用Install-Package命令或.NET add package命令来安装FluentEmail包和Razor模板渲染器包:

Install-Package FluentEmail.Core
or
dotnet add package FluentEmail.Core
Install-Package FluentEmail.Razor
or
dotnet add package FluentEmail.Razor
Install-Package FluentEmail.Core
or
dotnet add package FluentEmail.Core
Install-Package FluentEmail.Razor
or
dotnet add package FluentEmail.Razor
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

步骤2:创建一个Razor模板

创建一个Razor模板用于你的电子邮件正文。这可以是一个包含HTML和有效Razor代码语法的 .cshtml 文件。例如,创建一个名为 EmailTemplate.cshtml 的文件:

@model YourNamespace.EmailViewModel
<!DOCTYPE html>
<html>
<head>
    <title>Email Template</title>
</head>
<body>
    <h1>Hello, @Model.Name!</h1>
    <p>This is a sample email template.</p>
</body>
</html>
// string template code with very basic defaults
@model YourNamespace.EmailViewModel
<!DOCTYPE html>
<html>
<head>
    <title>Email Template</title>
</head>
<body>
    <h1>Hello, @Model.Name!</h1>
    <p>This is a sample email template.</p>
</body>
</html>
// string template code with very basic defaults
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

请确保将 `YourNamespace.EmailViewModel` 替换为您的视图模型的实际命名空间和类名,或者只是您将传递给此模板的域模型。

第3步:设置FluentEmail与Razor渲染器

配置FluentEmail以使用Razor渲染器,并提供必要的依赖项:

using FluentEmail.Core;
using FluentEmail.Razor;
public void ConfigureFluentEmail()
{
    FluentEmail.Core.Email.DefaultRenderer = new RazorRenderer();
    // Set up email smtp sender address
    Email.DefaultSender = new SmtpSender(new SmtpClient("smtp.yourserver.com"));
}
using FluentEmail.Core;
using FluentEmail.Razor;
public void ConfigureFluentEmail()
{
    FluentEmail.Core.Email.DefaultRenderer = new RazorRenderer();
    // Set up email smtp sender address
    Email.DefaultSender = new SmtpSender(new SmtpClient("smtp.yourserver.com"));
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

第4步:渲染并发送电子邮件

在您的应用程序代码中,使用所需的模型渲染Razor模板并发送电子邮件:

using FluentEmail.Core;
using FluentEmail.Razor;
public void SendEmail()
{
// layout var template
    var template = "EmailTemplate.cshtml"
    var email = Email
        .From("sender@example.com") // default sendfrom address
        .To("recipient@example.com")
        .Subject("Sample Email");
    var model = new EmailViewModel { Name = "John Doe" };
    email.UsingTemplateFromFile(template, model);
    email.Send();
}
using FluentEmail.Core;
using FluentEmail.Razor;
public void SendEmail()
{
// layout var template
    var template = "EmailTemplate.cshtml"
    var email = Email
        .From("sender@example.com") // default sendfrom address
        .To("recipient@example.com")
        .Subject("Sample Email");
    var model = new EmailViewModel { Name = "John Doe" };
    email.UsingTemplateFromFile(template, model);
    email.Send();
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

确保 `EmailViewModel` 与您的 Razor 模板中定义的模型匹配 (`EmailTemplate.cshtml`)此模型应包含您在 Razor 模板中引用的属性。 (`@Model.Name`, 例如).

集成 Mailgun API 密钥

Mailgun 是一个因其可靠性、可投递性和丰富功能而闻名的流行电子邮件服务提供商。通过将 Mailgun API 密钥与 FluentEmail 集成,开发人员可以利用 Mailgun 的基础设施高效且安全地发送电子邮件。

将Mailgun API密钥与FluentEmail集成的步骤

  1. 获取Mailgun API密钥

    • 如果还没有,请注册一个Mailgun账户。

    • 导航到 邮件枪 仪表板并创建一个新的API密钥。提供描述。

FluentEmail C#(开发者工作原理):图1 - Mailgun

  1. 安装 FluentEmail 包

    使用 Visual Studio 中的 NuGet 包管理器或包管理器控制台安装 FluentMail:

Install-Package FluentEmail.Mailgun
Install-Package FluentEmail.Mailgun
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

或者通过 Visual Studio

FluentEmail C#(开发者工作方式):图2 - FluentEmail.Mailgun

  1. 配置FluentEmail与Mailgun API密钥

通过配置您的API密钥,将FluentEmail设置为使用Mailgun作为电子邮件服务提供商或SMTP发送器:

using FluentEmail.Core;
using FluentEmail.Mailgun;
var sender = new MailgunSender("your-domain.com", "your-mailgun-api-key");
Email.DefaultSender = sender;
using FluentEmail.Core;
using FluentEmail.Mailgun;
var sender = new MailgunSender("your-domain.com", "your-mailgun-api-key");
Email.DefaultSender = sender;
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#
  1. 撰写和发送电子邮件:

    使用FluentEmail的流畅界面来撰写和发送电子邮件:

var email = Email
        .From("sender@example.com")
        .To("recipient@example.com")
        .Subject("Your Subject Here")
        .Body("Hello, this is a test email sent via FluentMail and Mailgun!")
        .Send();
var email = Email
        .From("sender@example.com")
        .To("recipient@example.com")
        .Subject("Your Subject Here")
        .Body("Hello, this is a test email sent via FluentMail and Mailgun!")
        .Send();
Dim email = Email.From("sender@example.com").To("recipient@example.com").Subject("Your Subject Here").Body("Hello, this is a test email sent via FluentMail and Mailgun!").Send()
VB   C#
  1. 高级配置:

    • 使用FluentEmail的Fluent API自定义电子邮件设置,例如附件、HTML格式、抄送/密送收件人和电子邮件头。

使用FluentEmail和Mailgun的好处

  • 简单性: FluentEmail抽象了SMTP配置的复杂性,使发送电子邮件变得简单,设置最少。
  • 可靠性: 利用Mailgun的基础设施,确保高送达率和强大的电子邮件处理能力。
  • 可扩展性: 使用Mailgun的可扩展基础设施,无论是小型应用还是企业级解决方案,都能轻松扩展您的电子邮件发送需求。
  • 丰富的功能: 利用Mailgun的功能,如跟踪、分析和高级电子邮件验证,优化您的电子邮件营销活动。

IronPDF 简介

FluentEmail C#(开发人员如何使用):图3 - IronPDF

IronPDF是一个Node.js PDF库,用于在.NET项目中生成、管理和提取PDF文档的内容。以下是一些主要功能:

  1. HTML到PDF转换

    • 将HTML、CSS和JavaScript内容转换为PDF文档。
    • 使用Chrome渲染引擎生成像素完美的PDF。
    • 从URL、HTML文件或HTML字符串生成PDF。
  2. 图像和内容转换

    • 将图像转换为PDF或从PDF转换为图像。
    • 从现有PDF文档中提取文本和图像。
    • 支持各种图像格式,如JPG、PNG等。
  3. 编辑和操作
    • 设置PDF的属性、安全性和权限。
    • 添加数字签名。
    • 编辑元数据和修订历史。

使用 IronPDF 和 FluentEmail .NET 结合 Mailgun 发送器生成 PDF 文档

首先,使用 Visual Studio 创建一个控制台应用程序,如下所示。

FluentEmail C#(开发人员操作指南):图4 - 控制台应用程序

提供项目名称。

FluentEmail C#(对开发人员的工作原理):图 5 - 项目配置

提供 .NET 版本。

FluentEmail C#(开发者指南):图6 - 目标框架

安装 IronPDF 包。

FluentEmail C#(开发者是如何工作的):图 7 - IronPDF

安装 FluentEmail Mailgun。

FluentEmail C#(对开发者如何工作):图8 - FluentEmail.Mailgun

要在免费试用中接收电子邮件,接收者的电子邮件应在如下所示的仪表盘中进行注册。

FluentEmail C#(开发者指南):图9 - Mailgun 仪表板

using FluentEmail.Core;
using FluentEmail.Mailgun;
namespace CodeSample
{
    public static class FluentMailDemo
    {
        public static void Execute()
        {
            // Instantiate Renderer
            var renderer = new ChromePdfRenderer();
            var content = "<h1>Demo FluentEmail with Mailgun and IronPDF</h1>";
            content += "<h2>Create MailgunSender</h2>";
            content += "<p>1. get API key from app.mailgun.com</p>";
            var domain = "sandboxe26ac376696246a4ad6ceedcfc2b5639.mailgun.org";
            var sender = new MailgunSender(domain, "8b50c68f19de7ddbb129464e129e9d61-6fafb9bf-e36ab713");
            Email.DefaultSender = sender;
            content += "<h2>Prepare Email</h2>";
            content += $"<p>Sender: Santosh@{domain}</p>";
            content += $"<p>Receiver: karanamsantosh99@gmail.com</p>";
            content += $"<p>Subject: Checkout the New Awesome IronPDF Library from IronSoftware</p>";
            content += $"<p>Body: IronPDF is the leading C# PDF library for generating & editing PDFs. It has friendly API and allows developers to rapidly deliver professional, high quality PDFs from HTML in .NET projects.</p>";
            var pdf = renderer.RenderHtmlAsPdf(content);
            // Export to a file or Stream
            pdf.SaveAs("AwesomeFluentEmailAndIron.pdf");
            var email = Email.From("santosh@"+domain)
                .To("karanamsantosh99@gmail.com")
                .Subject("Checkout the New Awesome IronPDF Library from IronSoftware")
                .Body("IronPDF is the leading C# PDF library for generating & editing PDFs. It has friendly API and allows developers to rapidly deliver professional, high quality PDFs from HTML in .NET projects.")
                .Attach(new FluentEmail.Core.Models.Attachment() { Data=File.OpenRead("AwesomeFluentEmailAndIron.pdf"), Filename="AwesomeFluentEmailAndIron.pdf", ContentType="application/pdf" })
                .Send();
            Console.WriteLine($"Is Send Success:{email.Successful}");
        }
    }
}
using FluentEmail.Core;
using FluentEmail.Mailgun;
namespace CodeSample
{
    public static class FluentMailDemo
    {
        public static void Execute()
        {
            // Instantiate Renderer
            var renderer = new ChromePdfRenderer();
            var content = "<h1>Demo FluentEmail with Mailgun and IronPDF</h1>";
            content += "<h2>Create MailgunSender</h2>";
            content += "<p>1. get API key from app.mailgun.com</p>";
            var domain = "sandboxe26ac376696246a4ad6ceedcfc2b5639.mailgun.org";
            var sender = new MailgunSender(domain, "8b50c68f19de7ddbb129464e129e9d61-6fafb9bf-e36ab713");
            Email.DefaultSender = sender;
            content += "<h2>Prepare Email</h2>";
            content += $"<p>Sender: Santosh@{domain}</p>";
            content += $"<p>Receiver: karanamsantosh99@gmail.com</p>";
            content += $"<p>Subject: Checkout the New Awesome IronPDF Library from IronSoftware</p>";
            content += $"<p>Body: IronPDF is the leading C# PDF library for generating & editing PDFs. It has friendly API and allows developers to rapidly deliver professional, high quality PDFs from HTML in .NET projects.</p>";
            var pdf = renderer.RenderHtmlAsPdf(content);
            // Export to a file or Stream
            pdf.SaveAs("AwesomeFluentEmailAndIron.pdf");
            var email = Email.From("santosh@"+domain)
                .To("karanamsantosh99@gmail.com")
                .Subject("Checkout the New Awesome IronPDF Library from IronSoftware")
                .Body("IronPDF is the leading C# PDF library for generating & editing PDFs. It has friendly API and allows developers to rapidly deliver professional, high quality PDFs from HTML in .NET projects.")
                .Attach(new FluentEmail.Core.Models.Attachment() { Data=File.OpenRead("AwesomeFluentEmailAndIron.pdf"), Filename="AwesomeFluentEmailAndIron.pdf", ContentType="application/pdf" })
                .Send();
            Console.WriteLine($"Is Send Success:{email.Successful}");
        }
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

代码解释

  1. FluentEmail和Mailgun集成:

    • FluentEmail.Core: 提供流畅的接口用于编写和发送电子邮件。

    • FluentEmail.Mailgun: 启用与Mailgun的集成为邮件传递。
  2. ChromePdfRenderer:

    • 这被认为是IronPDF库中的ChromePdfRenderer实例,用于将HTML内容渲染成PDF文档。
  3. 内容准备:

    • HTML内容 (内容) 已准备好,包括有关IronPDF的详细信息。此内容用于生成PDF。 (renderer.RenderHtmlAsPdf(内容)) 和电子邮件正文。
  4. MailgunSender 设置
  • MailgunSender 使用 Mailgun API 凭证初始化 (域名和API密钥). Email.DefaultSender 被设置为这个发送者,确保所有后续的邮件都使用Mailgun进行发送。
  1. PDF 生成和附件

    • HTML 内容 (内容) 被渲染成PDF (PDF) 使用IronPDF的RenderHtmlAsPdf方法。
    • 生成的PDF保存为“AwesomeFluentEmailAndIron.pdf”。
  2. 邮件撰写和发送
  • 使用FluentEmail的流畅API编写电子邮件:

    • 使用发件人的域名设置发件地址。

    • 将收件地址设置为.

      • 电子邮件的主题和正文已定义。

      • PDF 文件 "AwesomeFluentEmailAndIron.pdf" 附加在电子邮件中。
    • 使用 .Send 发送电子邮件()以及成功状态 (电子邮件.成功) 打印到控制台。
  1. 控制台输出
  • 在尝试发送电子邮件后,代码输出电子邮件是否发送成功。 (发送是否成功: true/false).

输出电子邮件消息

FluentEmail C#(对开发人员的工作原理):图10 - 电子邮件输出

附件PDF

FluentEmail C#(它如何为开发者工作):图11 - PDF输出

IronPDF 许可

IronPDF 软件包需要许可证才能运行并生成 PDF。在访问软件包之前,请在应用程序的开头添加以下代码。

IronPdf.License.LicenseKey = "IRONPDF-LICENSE-KEY";
IronPdf.License.LicenseKey = "IRONPDF-LICENSE-KEY";
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

试用许可证可在 试用许可证页面.

结论

FluentEmail 与 Mailgun API 密钥结合,使 .NET 开发人员能够简化其应用程序中的电子邮件功能。无论是发送事务性电子邮件、新闻通讯还是通知,这种集成都确保了可靠性、可扩展性和易用性。通过抽象电子邮件发送的复杂性,FluentEmail 允许开发人员专注于构建强大的应用程序,同时利用 Mailgun 强大的电子邮件基础设施。今天就拥抱 FluentEmail 和 Mailgun 的力量,增强您在 .NET 应用程序中的电子邮件通信能力。

另一方面,IronPDF 是一个强大的 C# 库,用于在 .NET 应用程序中创建、编辑和转换 PDF 文档。它在 HTML 到 PDF 转换中表现出色,提供了全面的 PDF 操作功能,并与 .NET 框架无缝集成,提供安全且多功能的 PDF 处理解决方案。

< 前一页
实体框架核心(开发者如何使用)
下一步 >
LazyCache C#(开发人员工作原理)

准备开始了吗? 版本: 2024.9 刚刚发布

免费NuGet下载 总下载量: 10,731,156 查看许可证 >