跳過到頁腳內容
.NET幫助

FluentEmail C#(對開發者如何理解的工作)

在當今的數位時代,電子郵件仍然是企業和個人通信的基石。 將強大的電子郵件功能整合到ASP.NET Core應用程式中,對於自動化通知、發送電子報以及促進與客戶互動至關重要。 FluentEmail,一個功能強大的.NET程式庫,結合Mailgun API金鑰,為開發者提供無縫的解決方案,以增強可靠性和可擴展的電子郵件功能。 在本文的後面,我們還將查看ironsoftware.com上的IronPDF程式庫來生成和管理PDF文件。

FluentEmail簡化了在.NET應用程式中以程式方式發送多封電子郵件的過程。 它提供了一個直觀且流暢的接口,用於配置電子郵件信息、管理附件和處理收件人列表。 這個程式庫抽象了SMTP配置的複雜性,並支持多個模板渲染器供應商和測試電子郵件服務提供者,包括Mailgun。

FluentEmail.NET是.NET Core生態系統中流行的電子郵件發送程式庫,支持Razor電子郵件模板以及Liquid模板來動態創建電子郵件正文。 使用Razor模板渲染器與FluentEmail.NET可以讓您利用Razor語法的強大功能來創建格式良好、動態的電子郵件內容並解決佈局文件。

這是一個關於如何使用ASP.NET Core Razor模板與FluentEmail.NET的基本指南。

步驟 1:安裝FluentEmail

首先,需要通過使用Install-Package命令或.NET附加封裝命令來安裝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:使用Razor渲染器設置FluentEmail

配置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是一個以其可靠性、傳遞性和豐富功能而聞名的電子郵件服務提供商。 通過與FluentEmail集成Mailgun API金鑰,開發人員可以利用Mailgun的基礎設施來高效、安全地發送電子郵件。

將Mailgun API金鑰與FluentEmail集成的步驟

  1. 獲取Mailgun API金鑰:

    • 如果您尚未擁有,註冊一個Mailgun帳戶。
    • 瀏覽到Mailgun儀表板並創建一個新的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:

設置FluentEmail以使用Mailgun作為電子郵件服務提供者或SMTP發送者,通過配置您的API金鑰:

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轉換中表現出色,確保精確保留原有版面和樣式。 它非常適合從基於網頁的內容如報告、發票和文件中創建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與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

要在免費試用期內接收電子郵件,發收件人的電子郵件應在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的集成以進行電子郵件傳遞。
  2. ChromePdfRenderer:

    • 假定這是來自IronPDF程式庫的ChromePdfRenderer實例,用於將HTML內容渲染為PDF文件。
  3. 內容準備:

    • 準備好的HTML內容(content),包括IronPDF的詳細信息。 此內容既用於生成PDF(renderer.RenderHtmlAsPdf(content)),也用於電子郵件正文。
  4. MailgunSender設置:

    • 使用Mailgun API憑證(域和API密鑰)初始化MailgunSender。 將Email.DefaultSender設置為該發件者,以確保所有後續電子郵件使用Mailgun進行傳遞。
  5. PDF生成和附件:

    • 使用IronPDF的pdf)。
    • 生成的PDF保存為"AwesomeFluentEmailAndIron.pdf"。
  6. 電子郵件撰寫和發送:

    • 使用FluentEmail的流暢API撰寫電子郵件:
      • 使用發件者的域設置'From'地址。
      • 將'To'地址設置為收件人的電子郵件。
      • 定義電子郵件的主題和正文。
      • 將PDF文件"AwesomeFluentEmailAndIron.pdf"附加到電子郵件中。
    • 使用email.Successful)打印到控制台。
  7. 控制台輸出:

    • 在嘗試發送電子郵件後,代碼輸出電子郵件是否成功發送(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許可和試用獲得。

結論

FluentEmail結合Mailgun API密鑰,讓.NET開發者能夠在應用程式中簡化電子郵件功能。 無論是發送交易性電子郵件、新聞電子報或通知,這種集成都可以確保可靠性、可擴展性和易用性。 通過抽象電子郵件傳遞的複雜性,FluentEmail允許開發者專注於構建健壯的應用程式,同時利用Mailgun強大的電子郵件基礎設施。 今天就隨著FluentEmail和Mailgun的強大功能,增強.NET應用程式中的電子郵件通信能力吧。
另一方面,IronPDF是一個穩健的C#程式庫,可以在.NET應用程式中創建、編輯和轉換PDF文件。 它在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核心代碼庫的原始開發者,他自公司成立以來就塑造了公司的產品架構,並與CEO Cameron Rimington將公司轉型為服務NASA、Tesla以及全球政府機構的50多人公司。

Jacob擁有曼徹斯特大學土木工程一級榮譽學士學位(1998年–2001年)。他於1999年在倫敦開立首家軟體公司,並於2005年建立了他的第一個.NET組件,專注於解決Microsoft生態系統中的複雜問題。

他的旗艦作品IronPDF和Iron Suite .NET程式庫全球已獲得超過3000萬次NuGet安裝,他的基礎代碼不斷在全球各地驅動開發者工具。擁有25年以上的商業經驗和41年的編碼專業知識,Jacob仍然專注於推動企業級C#、Java和Python PDF技術的創新,同時指導下一代技術領導者。

Iron Support Team

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