跳至页脚内容
.NET 帮助

FluentEmail C#(开发者用法)

在当今的数字时代,电子邮件仍然是企业和个人通信的基石。 将强大的电子邮件功能集成到 ASP.NET Core 应用程序中,对于自动化通知、发送新闻通讯和促进客户互动至关重要。 FluentEmail,一个强大的 .NET 库,与 Mailgun API 密钥结合,为开发人员提供了可靠且可扩展的无缝解决方案来增强电子邮件功能。 在本文后面,我们还将查看 IronSoftware.com 上的 IronPDF 库 以生成和管理 PDF 文档。

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

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

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

步骤 1:安装 FluentEmail

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

# Install packages using the Package Manager Console
Install-Package FluentEmail.Core
Install-Package FluentEmail.Razor

# Or install packages using the .NET CLI
dotnet add package FluentEmail.Core
dotnet add package FluentEmail.Razor
# Install packages using the Package Manager Console
Install-Package FluentEmail.Core
Install-Package FluentEmail.Razor

# Or install packages using the .NET CLI
dotnet add package FluentEmail.Core
dotnet add package FluentEmail.Razor
SHELL

步骤 2:创建 Razor 模板

为您的电子邮件主体创建一个 Razor 模板。 这可以是一个.cshtml文件,包含HTML和有效的Razor代码语法。 例如,创建一个名为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>
@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>
HTML

确保用视图模型的实际命名空间和类名或您将传递给此模板的域模型替换YourNamespace.EmailViewModel

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

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

using FluentEmail.Core;
using FluentEmail.Razor;

public void ConfigureFluentEmail()
{
    // Set up the Razor renderer
    Email.DefaultRenderer = new RazorRenderer();

    // Set up SMTP sender address
    Email.DefaultSender = new SmtpSender(new SmtpClient("smtp.yourserver.com"));
}
using FluentEmail.Core;
using FluentEmail.Razor;

public void ConfigureFluentEmail()
{
    // Set up the Razor renderer
    Email.DefaultRenderer = new RazorRenderer();

    // Set up SMTP sender address
    Email.DefaultSender = new SmtpSender(new SmtpClient("smtp.yourserver.com"));
}
$vbLabelText   $csharpLabel

步骤 4:渲染和发送电子邮件

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

using FluentEmail.Core;
using FluentEmail.Razor;

public void SendEmail()
{
    // Specify the template file
    var template = "EmailTemplate.cshtml";

    // Create the email
    var email = Email
        .From("sender@example.com") // Set the sender's email address
        .To("recipient@example.com") // Set the recipient's email address
        .Subject("Sample Email"); // Set the email subject

    // Define the model to pass to the template
    var model = new EmailViewModel { Name = "John Doe" };

    // Render the template with the model
    email.UsingTemplateFromFile(template, model);

    // Send the email
    email.Send();
}
using FluentEmail.Core;
using FluentEmail.Razor;

public void SendEmail()
{
    // Specify the template file
    var template = "EmailTemplate.cshtml";

    // Create the email
    var email = Email
        .From("sender@example.com") // Set the sender's email address
        .To("recipient@example.com") // Set the recipient's email address
        .Subject("Sample Email"); // Set the email subject

    // Define the model to pass to the template
    var model = new EmailViewModel { Name = "John Doe" };

    // Render the template with the model
    email.UsingTemplateFromFile(template, model);

    // Send the email
    email.Send();
}
$vbLabelText   $csharpLabel

确保EmailTemplate.cshtml)相匹配。 这个模型应包含您在Razor模板中引用的属性(例如@Model.Name)。

集成 Mailgun API 密钥

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

与 FluentEmail 集成 Mailgun API 密钥步骤

  1. 获取Mailgun API密钥:

    • 如果您尚未注册,则注册一个 Mailgun 帐户。
    • 导航到 Mailgun Dashboard 并创建一个新的 API 密钥。 提供描述。

FluentEmail C#(开发者如何使用):图1 - Mailgun

  1. 安装FluentEmail包:

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

# Install the FluentEmail.Mailgun package
Install-Package FluentEmail.Mailgun
# Install the FluentEmail.Mailgun package
Install-Package FluentEmail.Mailgun
SHELL

或通过 Visual Studio:

FluentEmail C#(开发者如何使用):图2 - FluentEmail.Mailgun

  1. 用Mailgun API密钥配置FluentEmail:

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

using FluentEmail.Core;
using FluentEmail.Mailgun;

// Create an instance of MailgunSender
var sender = new MailgunSender("your-domain.com", "your-mailgun-api-key");

// Set the default sender for all emails
Email.DefaultSender = sender;
using FluentEmail.Core;
using FluentEmail.Mailgun;

// Create an instance of MailgunSender
var sender = new MailgunSender("your-domain.com", "your-mailgun-api-key");

// Set the default sender for all emails
Email.DefaultSender = sender;
$vbLabelText   $csharpLabel
  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();
$vbLabelText   $csharpLabel
  1. 高级配置:

    • 使用 FluentEmail 的流畅 API 自定义邮件设置,例如附件、HTML 格式、CC/BCC 收件人和邮件头。

使用 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在HTML到PDF转换方面表现出色,确保精确保留原始布局和样式。 它非常适合从基于Web的内容中创建PDF,如报告、发票和文档。 利用对HTML文件、URL和原始HTML字符串的支持,IronPDF轻松生成高质量的PDF文档。

using IronPdf;

class Program
{
    static void Main(string[] args)
    {
        // Create a ChromePdfRenderer instance
        var renderer = new ChromePdfRenderer();

        // 1. Convert HTML String to PDF
        var htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>";
        var pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent);
        pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf");

        // 2. Convert HTML File to PDF
        var htmlFilePath = "path_to_your_html_file.html"; // Specify the path to your HTML file
        var pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath);
        pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf");

        // 3. Convert URL to PDF
        var url = "http://ironpdf.com"; // Specify the URL
        var pdfFromUrl = renderer.RenderUrlAsPdf(url);
        pdfFromUrl.SaveAs("URLToPDF.pdf");
    }
}
using IronPdf;

class Program
{
    static void Main(string[] args)
    {
        // Create a ChromePdfRenderer instance
        var renderer = new ChromePdfRenderer();

        // 1. Convert HTML String to PDF
        var htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>";
        var pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent);
        pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf");

        // 2. Convert HTML File to PDF
        var htmlFilePath = "path_to_your_html_file.html"; // Specify the path to your HTML file
        var pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath);
        pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf");

        // 3. Convert URL to PDF
        var url = "http://ironpdf.com"; // Specify the URL
        var pdfFromUrl = renderer.RenderUrlAsPdf(url);
        pdfFromUrl.SaveAs("URLToPDF.pdf");
    }
}
$vbLabelText   $csharpLabel

使用 IronPDF 和 FluentEmail .NET 生成 PDF 文档及 Mailgun 发送者

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

FluentEmail C#(开发者如何使用):图4 - 控制台应用

提供项目名称。

FluentEmail C#(开发者如何使用):图5 - 项目配置

提供 .NET 版本。

FluentEmail C#(开发者如何使用):图6 - 目标框架

安装IronPDF包。

FluentEmail C#(开发者如何使用):图7 - IronPDF

安装 FluentEmail Mailgun。

FluentEmail C#(开发者如何使用):图8 - FluentEmail.Mailgun

要在免费试用中接收电子邮件消息,收件人电子邮件应在 Mailgun 注册仪表板 上注册,如下所示。

FluentEmail C#(开发者如何使用):图9 - Mailgun控制面板

using FluentEmail.Core;
using FluentEmail.Mailgun;
using IronPdf;
using System;
using System.IO;

namespace CodeSample
{
    public static class FluentMailDemo
    {
        public static void Execute()
        {
            // Instantiate Renderer
            var renderer = new ChromePdfRenderer();

            // HTML Content to be converted into PDF and used in Email
            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 = "your-domain.com"; // Use your Mailgun domain
            var sender = new MailgunSender(domain, "your-mailgun-api-key"); // Use your Mailgun API key
            Email.DefaultSender = sender;

            content += "<h2>Prepare Email</h2>";
            content += $"<p>Sender: example@{domain}</p>";
            content += $"<p>Receiver: recipient@example.com</p>";
            content += $"<p>Subject: Checkout the New Awesome IronPDF Library from Iron Software</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 high quality PDFs from HTML in .NET projects.</p>";

            // Render HTML content to PDF
            var pdf = renderer.RenderHtmlAsPdf(content);

            // Export the PDF to a file
            pdf.SaveAs("AwesomeFluentEmailAndIron.pdf");

            // Compose and send the email
            var email = Email
                .From($"example@{domain}")
                .To("recipient@example.com")
                .Subject("Checkout the New Awesome IronPDF Library from Iron Software")
                .Body("IronPDF is the leading C# PDF library for generating & editing PDFs. It has a friendly API and allows developers to rapidly deliver 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;
using IronPdf;
using System;
using System.IO;

namespace CodeSample
{
    public static class FluentMailDemo
    {
        public static void Execute()
        {
            // Instantiate Renderer
            var renderer = new ChromePdfRenderer();

            // HTML Content to be converted into PDF and used in Email
            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 = "your-domain.com"; // Use your Mailgun domain
            var sender = new MailgunSender(domain, "your-mailgun-api-key"); // Use your Mailgun API key
            Email.DefaultSender = sender;

            content += "<h2>Prepare Email</h2>";
            content += $"<p>Sender: example@{domain}</p>";
            content += $"<p>Receiver: recipient@example.com</p>";
            content += $"<p>Subject: Checkout the New Awesome IronPDF Library from Iron Software</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 high quality PDFs from HTML in .NET projects.</p>";

            // Render HTML content to PDF
            var pdf = renderer.RenderHtmlAsPdf(content);

            // Export the PDF to a file
            pdf.SaveAs("AwesomeFluentEmailAndIron.pdf");

            // Compose and send the email
            var email = Email
                .From($"example@{domain}")
                .To("recipient@example.com")
                .Subject("Checkout the New Awesome IronPDF Library from Iron Software")
                .Body("IronPDF is the leading C# PDF library for generating & editing PDFs. It has a friendly API and allows developers to rapidly deliver 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}");
        }
    }
}
$vbLabelText   $csharpLabel

代码解释

  1. FluentEmail和Mailgun集成:
  • FluentEmail.Core:提供一个流畅的界面来撰写和发送电子邮件。
  • FluentEmail.Mailgun:支持与Mailgun的集成以进行电子邮件传递。
  1. ChromePdfRenderer:

    • 这是假定 IronPDF 库中的 ChromePdfRenderer 实例,用于将 HTML 内容渲染为 PDF 文档。
  2. 内容准备:
  • 正准备的HTML内容(content),包括关于IronPDF的详细信息。 此内容用于生成PDF(renderer.RenderHtmlAsPdf(content))以及电子邮件正文。
  1. MailgunSender设置:
  • 使用Mailgun API凭据(域和API密钥)初始化MailgunSender。 将Email.DefaultSender设置为此发件人,确保所有后续电子邮件使用Mailgun进行传递。
  1. PDF生成与附件:
  • 使用IronPDF的pdf)。
    • 将生成的 PDF 保存为"AwesomeFluentEmailAndIron.pdf"。
  1. 电子邮件撰写与发送:

    • 使用 FluentEmail 的流畅 API 撰写一封电子邮件:
      • 发件地址使用发送者的域进行设置。
      • 收件地址设置为收件人的电子邮件。
      • 定义电子邮件的主题和正文。
      • 将 PDF 文件"AwesomeFluentEmailAndIron.pdf"附加到电子邮件中。
    • 使用email.Successful)输出到控制台。
  2. 控制台输出:
  • 在尝试发送电子邮件后,代码输出电子邮件是否成功发送(Is Send Success: 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";
$vbLabelText   $csharpLabel

试用许可证可在 IronPDF 许可和试用 中获得。

结论

结合 Mailgun API 密钥的 FluentEmail,使 .NET 开发人员能够简化其应用程序内的电子邮件功能。 无论是发送事务性电子邮件、新闻通讯还是通知,此集成都确保了可靠性、可扩展性和易用性。 通过抽象电子邮件传递的复杂性,FluentEmail 允许开发人员专注于构建强大的应用程序,同时利用 Mailgun 强大的电子邮件基础设施。 利用 FluentEmail 和 Mailgun 的强大功能来增强您在 .NET 应用程序中的电子邮件通信能力。
另一方面,IronPDF 是一个用于在 .NET 应用程序中创建、编辑和转换 PDF 文档的强大 C# 库。 它在HTML到PDF转换方面表现出色,提供全面的PDF操作能力,并能与.NET框架无缝集成,提供安全和多功能的PDF处理解决方案。

常见问题解答

如何在.NET应用中使用Razor模板发送邮件?

您可以使用FluentEmail在.NET应用中通过Razor模板发送邮件。首先,通过NuGet或.NET CLI安装FluentEmail和Razor渲染器包。然后,配置Razor渲染器,并使用FluentEmail界面撰写和发送支持Razor模板的邮件。

如何将Mailgun与.NET邮件库集成?

要将Mailgun与FluentEmail集成,请从Mailgun仪表板获取您的API密钥。然后,安装`FluentEmail.Mailgun`包,并将Mailgun配置为电子邮件服务提供商,使您可以通过Mailgun的基础设施高效发送邮件。

使用FluentEmail实现.NET中的邮件功能有哪些优势?

FluentEmail为撰写和发送邮件提供了流畅的界面,支持Razor和Liquid模板用于动态内容,简化了SMTP配置,并与Mailgun集成以实现可靠且可扩展的邮件传递。

我可以使用.NET库在ASP.NET Core中自动化邮件通知吗?

是的,您可以使用FluentEmail在ASP.NET Core中自动化邮件通知。通过利用Razor模板和Mailgun集成,您可以轻松地自动发送交易邮件、新闻通讯和通知。

如何在.NET中使用FluentEmail处理电子邮件附件?

使用FluentEmail,您可以在撰写邮件时轻松管理电子邮件附件。该库提供附加文件到邮件的方法,确保附件随邮件内容一起发送。

IronPDF如何增强.NET应用的PDF功能?

IronPDF通过提供HTML到PDF转换、内容提取和全面的PDF编辑等功能来增强PDF功能。它使用Chrome渲染引擎,使开发人员能够从HTML生成PDF、提取内容和高效修改PDF。

在.NET应用中将HTML转换为PDF需要哪些步骤?

要在.NET应用中使用IronPDF将HTML转换为PDF,您可以使用`ChromePdfRenderer`类将HTML内容渲染为PDF文档。此PDF可以保存为文件或根据需要进一步处理。

如何在.NET应用中将PDF附加到电子邮件?

要在.NET应用中将PDF附加到电子邮件,首先使用IronPDF生成PDF。一旦PDF创建完成,使用FluentEmail撰写您的邮件,并在发送邮件之前使用可用的文件附件方法附加PDF文件。

是否可以使用.NET库从PDF中提取内容?

是的,使用IronPDF,您可以从PDF中提取内容。该库提供从PDF文档中读取文本和图像的方法,支持内容提取用于进一步处理或分析。

Jacob Mellor,Team Iron 的首席技术官
首席技术官

Jacob Mellor 是 Iron Software 的首席技术官,也是一位开创 C# PDF 技术的有远见的工程师。作为 Iron Software 核心代码库的原始开发者,他从公司成立之初就开始塑造公司的产品架构,与首席执行官 Cameron Rimington 一起将公司转变为一家拥有 50 多名员工的公司,为 NASA、特斯拉和全球政府机构提供服务。

Jacob 拥有曼彻斯特大学土木工程一级荣誉工程学士学位(BEng)(1998-2001 年)。他的旗舰产品 IronPDF 和 Iron Suite for .NET 库在全球的 NuGet 安装量已超过 3000 万次,其基础代码继续为全球使用的开发人员工具提供动力。Jacob 拥有 25 年的商业经验和 41 年的编码专业知识,他一直专注于推动企业级 C#、Java 和 Python PDF 技术的创新,同时指导下一代技术领导者。

Iron Support Team

We're online 24 hours, 5 days a week.
Chat
Email
Call Me