.NET ヘルプ

FluentEmail C# (開発者のための仕組み)

今日のデジタル時代においても、電子メールは企業や個人にとってコミュニケーションの要であり続けている。 堅牢なEメール機能をASP.NET Coreアプリケーションに統合することは、通知の自動化、ニュースレターの送信、顧客とのやり取りを促進するために不可欠です。 FluentEmail は、強力な .NET 用ライブラリであり、Mailgun API キーと組み合わせることで、信頼性とスケーラビリティを備えたメール機能を強化するためのシームレスなソリューションを開発者に提供します。 この記事の後半では、ironsoftware.comのIronPDFライブラリを使用してPDFドキュメントの生成と管理についても見ていきます。

イントロダクション

FluentEmailは、.NETアプリケーション内でプログラムで複数の電子メールを送信するプロセスを簡素化します。 電子メールメッセージの設定、添付ファイルの管理、受信者リストの処理など、直感的で流暢なインターフェースを提供します。 このライブラリは、SMTP設定の複雑さを抽象化し、Mailgunを含む複数のテンプレートレンダラープロバイダとテストメールサービスプロバイダをサポートしています。

FluentEmail.NETは、.NET Coreエコシステムで人気のあるメール送信用ライブラリで、メール本文を動的に作成するためのLiquidテンプレートだけでなく、Razorメールテンプレートもサポートしています。 FluentEmail.NETでRazorテンプレートレンダラーを使用すると、Razor構文のパワーを活用し、書式の整った動的なメールコンテンツを作成し、レイアウトファイルを解決することができます。

ここでは、ASP.NET Core RazorテンプレートでFluentEmail.NETを使用する方法についての基本的なガイドを示します。

ステップ1: FluentEmailをインストールする

まず、FluentEmail パッケージと Razor テンプレートレンダラーパッケージを Install-Package コマンドか .NET add package コマンドでインストールします:

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
$vbLabelText   $csharpLabel

ステップ2:レイザーテンプレートの作成

メール本文用のRazorテンプレートを作成します。 これは、有効なRazorコード構文を含むHTMLの`.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
$vbLabelText   $csharpLabel

`YourNamespace.EmailViewModel`を、ビュー モデルまたはこのテンプレートに渡すドメイン モデルの実際の名前空間とクラス名に置き換えてください。

ステップ 3: Razor Renderer で FluentEmail をセットアップする

Razor レンダラーを使用するように FluentEmail を設定し、必要な依存関係を提供します:

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
$vbLabelText   $csharpLabel

ステップ 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
$vbLabelText   $csharpLabel

`EmailViewModel` が Razor テンプレート (`EmailTemplate.cshtml`) に定義されたモデルに一致していることを確認してください。 このモデルには、Razorテンプレートで参照するプロパティ(例:`@Model.Name`)を含める必要があります。

Mailgun APIキーの統合

Mailgunは、信頼性、配信性、豊富な機能で知られる人気のメールサービスプロバイダです。 MailgunのAPIキーをFluentEmailと統合することで、開発者はMailgunのインフラを活用して効率的かつ安全にメールを送信することができます。

MailgunのAPIキーとFluentEmailを統合する手順

  1. Mailgun APIキーを取得する:

    • まだの方はMailgunアカウントにサインアップしてください。

    • Mailgunダッシュボードに移動し、新しいAPIキーを作成します。 説明してください。

    FluentEmail C#(開発者向けの仕組み):図1 - Mailgun

  2. FluentEmailパッケージをインストールする

    NuGetパッケージマネージャまたはVisual Studioのパッケージマネージャコンソールを使用して、FluentMailをインストールします:

Install-Package FluentEmail.Mailgun
Install-Package FluentEmail.Mailgun
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

またはVisual Studioから

FluentEmail C#(開発者のための仕組み):図2 - FluentEmail.Mailgun

  1. FluentEmailをMailgun APIキーで構成する:

    APIキーを設定することで、メールサービスプロバイダまたはSMTP送信者としてMailgunを使用するようにFluentEmailを設定します:

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
$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();
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()
$vbLabelText   $csharpLabel
  1. 高度な構成:

    • FluentEmailの流暢なAPIを使用して、添付ファイル、HTMLフォーマット、CC/BCC受信者、メールヘッダーなどのメール設定をカスタマイズします。

MailgunでFluentEmailを使用する利点

  • シンプルさ: 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を作成するのに最適です。 IronPDFはHTMLファイル、URL、生のHTML文字列をサポートしており、簡単に高品質なPDFドキュメントを生成します。

using IronPdf;

class Program
{
    static void Main(string[] args)
    {
        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)
    {
        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");
    }
}
Imports IronPdf

Friend Class Program
	Shared Sub Main(ByVal args() As String)
		Dim renderer = New ChromePdfRenderer()

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

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

		' 3. Convert URL to PDF
		Dim url = "http://ironpdf.com" ' Specify the URL
		Dim pdfFromUrl = renderer.RenderUrlAsPdf(url)
		pdfFromUrl.SaveAs("URLToPDF.pdf")
	End Sub
End Class
$vbLabelText   $csharpLabel

Mailgun送信機でIronPDFとFluentEmail .NETを使って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;
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 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 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 Iron Software")
                .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 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 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 Iron Software")
                .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}");
        }
    }
}
Imports FluentEmail.Core
Imports FluentEmail.Mailgun
Namespace CodeSample
	Public Module FluentMailDemo
		Public Sub Execute()
			' Instantiate Renderer
			Dim renderer = New ChromePdfRenderer()
			Dim 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>"
			Dim domain = "sandboxe26ac376696246a4ad6ceedcfc2b5639.mailgun.org"
			Dim 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 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 professional, high quality PDFs from HTML in .NET projects.</p>"
			Dim pdf = renderer.RenderHtmlAsPdf(content)
			' Export to a file or Stream
			pdf.SaveAs("AwesomeFluentEmailAndIron.pdf")
			Dim email = Email.From("santosh@" & domain).To("karanamsantosh99@gmail.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 friendly API and allows developers to rapidly deliver professional, high quality PDFs from HTML in .NET projects.").Attach(New FluentEmail.Core.Models.Attachment() With {
				.Data=File.OpenRead("AwesomeFluentEmailAndIron.pdf"),
				.Filename="AwesomeFluentEmailAndIron.pdf",
				.ContentType="application/pdf"
			}).Send()
			Console.WriteLine($"Is Send Success:{email.Successful}")
		End Sub
	End Module
End Namespace
$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 設定:

    • MailgunSenderは、Mailgun APIの認証情報(ドメインとAPIキー)で初期化されます。 Email.DefaultSenderはこの送信者に設定され、それ以降のすべてのメールが配信にMailgunを使用することを保証します。
  5. PDF生成と添付:

    • HTMLコンテンツ(content)は、IronPDFのRenderHtmlAsPdfメソッドを使用してPDF(pdf)にレンダリングされます。

    • 生成されたPDFは "AwesomeFluentEmailAndIron.pdf "として保存されます。
  6. メールの作成と送信:

    • メールはFluentEmailのfluent APIを使って作成されます:

      • 差出人アドレスは、送信者のドメインを使用して設定されます。

      • 宛先はに設定されています。

      • メールの件名と本文が定義されている。

      • PDFファイル「AwesomeFluentEmailAndIron.pdf」がメールに添付されています。
    • メールは.Send()を使用して送信され、その成功ステータス(email.Successful)がコンソールに表示されます。
  7. コンソール出力:

    • メールの送信を試みた後、コードはメールが正常に送信されたかどうかを出力します(送信成功: 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
$vbLabelText   $csharpLabel

トライアルライセンスはIronPDFのライセンスとトライアルで利用可能です。

結論

FluentEmailとMailgun APIキーの組み合わせにより、.NET開発者はアプリケーション内のEメール機能を効率化することができます。 トランザクションメール、ニュースレター、通知のいずれを送信する場合でも、この統合は信頼性、拡張性、使いやすさを保証します。 メール配信の複雑さを抽象化することで、FluentEmailの開発者はMailgunの強力なメールインフラを活用しながら、堅牢なアプリケーションの構築に集中することができます。 FluentEmailとMailgunのパワーを利用して、.NETアプリケーションのメールコミュニケーション機能を強化しましょう。

IronPDFは.NETアプリケーション内でPDFドキュメントを作成、編集、変換するための堅牢なC#ライブラリです。 HTMLからPDFへの変換に優れ、包括的なPDF操作機能を提供し、.NETフレームワークとシームレスに統合し、安全で汎用性の高いPDF処理ソリューションを提供します。

チペゴ
ソフトウェアエンジニア
チペゴは優れた傾聴能力を持ち、それが顧客の問題を理解し、賢明な解決策を提供する助けとなっています。彼は情報技術の学士号を取得後、2023年にIron Softwareチームに加わりました。現在、彼はIronPDFとIronOCRの2つの製品に注力していますが、顧客をサポートする新しい方法を見つけるにつれて、他の製品に関する知識も日々成長しています。Iron Softwareでの協力的な生活を楽しんでおり、さまざまな経験を持つチームメンバーが集まり、効果的で革新的な解決策を提供することに貢献しています。チペゴがデスクを離れているときは、良い本を楽しんだり、サッカーをしていることが多いです。
< 以前
Entity Framework Core (開発者のための仕組み)
次へ >
LazyCache C# (開発者のための仕組み)