フッターコンテンツにスキップ
IRONPDFの使用

IronPDFを使ってC#から生成されたPDFファイルをメールに添付して送信する方法

ドキュメント配信の自動化は、.NETアプリケーションの一般的な要件です。 請求書、報告書、領収書の配布にかかわらず、開発者はプログラムでPDF文書を作成し、電子メールで直接送信する信頼性の高い方法を必要としています。 PDFドキュメントを電子メールの添付ファイルとして送信する機能は、ビジネスワークフローを合理化し、顧客とのコミュニケーションを向上させます。 ボタンのクリックやスケジュールされたタスクなど、多くのイベント駆動型アプリケーションでは、メール送信メソッドに、文字列の件名、オブジェクトの送信者、システムのワークフローの一部としてEventArgsなどのパラメータが含まれることもあります。 これにより、ディム文書やその他の動的に生成される資産を扱う場合でも、プロセスが効率的になります。

このチュートリアルでは、IronPDFのHTMLからPDFへの変換機能をC#のメール機能と組み合わせ、生成されたPDFファイルをC#からメールに添付して送信する方法を説明します。 C#を使用して、開発者はPDFファイルを生成し、メールメッセージに添付し、数行のコードで任意の受信者にメールを送信することができます。

How to Send Generated PDF File as Attachment in Email from C# Using IronPDF:イメージ1 - IronPDF

C#でのPDF生成と電子メールにはどのようなツールが必要ですか?

このワークフローを可能にするのは、PDF生成ライブラリと電子メール送信メカニズムという2つのコンポーネントです。 .NETはSystem.Net.Mailまたは最新のMailKitライブラリを通して電子メール機能をサポートしています。

IronPDF NuGetパッケージをVisual Studioのソリューションエクスプローラーまたはパッケージマネージャーコンソールからインストールしてください:

Install-Package IronPdf

How to Send Generated PDF File as Attachment in Email from C# Using IronPDF:画像2 - インストール</a

最新の電子メール機能については、MailKitをインストールしてください:

Install-Package MailKit

IronPdfはHTML、CSS、JavaScriptからピクセルパーフェクトなPDFを生成するChromiumベースのレンダリングエンジンを使用しています。 このライブラリは、Windows、Linux、macOSの各環境で動作し、.NET Coreアプリケーションはクロスプラットフォーム互換のメリットを享受できます。

How to Send Generated PDF File as Attachment in Email from C# Using IronPDF:イメージ3 - 機能

開発者はどのように C# を使用してメモリ内で PDF を生成できますか?

ChromePdfRendererクラスは、HTMLコンテンツをPDFドキュメントに変換します。 PDF ファイルをディスクに保存するのではなく、結果の PdfDocument オブジェクトは、その BinaryData プロパティを通して、またはその Stream プロパティを通して新しい MemoryStream を介して、バイナリデータへの直接アクセスを提供します。

using IronPdf;
// Create a new instance of the renderer
var renderer = new ChromePdfRenderer();
// Generate PDF document from HTML content
string htmlContent = @"
    <h1>Order Confirmation</h1>
    <p>Thank you for your purchase.</p>
    <p>Order Total: $99.99</p>";
PdfDocument PDF = renderer.RenderHtmlAsPdf(htmlContent);
// Access PDF as byte array for file attachment
byte[] pdfBytes = pdf.BinaryData;
using IronPdf;
// Create a new instance of the renderer
var renderer = new ChromePdfRenderer();
// Generate PDF document from HTML content
string htmlContent = @"
    <h1>Order Confirmation</h1>
    <p>Thank you for your purchase.</p>
    <p>Order Total: $99.99</p>";
PdfDocument PDF = renderer.RenderHtmlAsPdf(htmlContent);
// Access PDF as byte array for file attachment
byte[] pdfBytes = pdf.BinaryData;
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

RenderHtmlAsPdfメソッドは、HTML文字列を受け取り、完全にレンダリングされたPDFドキュメントを返します。 BinaryDataプロパティは、PDFコンテンツをバイト配列として提供します。 このアプローチでは、ファイルシステム操作を完全に回避し、次のスクリーンショットに示すように、生成から配信までのプロセス全体を通してPDFファイルをメモリ内に保持します。

出力

How to Send Generated PDF File as Attachment in Email from C# Using IronPDF:画像4 - PDF出力</a

より複雑なドキュメントのために、IronPDFはオプションのBasePathパラメーターを通して外部CSSと画像をサポートし、ブランド化されたスタイリングでプロフェッショナルなドキュメントレイアウトを可能にします。

How to Send Generated PDF File as Attachment in Email from C# Using IronPDF:画像5 - C#で生成したPDFファイルを添付ファイルとしてメール送信する方法 - IronPDF

インメモリ PDF を電子メール メッセージに添付するには?

MailKitは、.NETアプリケーションやWebアプリケーションで電子メールを送信するための、Microsoftが推奨する最新のアプローチを提供します。 BodyBuilderクラスはバイト配列を直接受け取ることで添付ファイルを扱い、IronPDFとの統合を簡単にします。

using IronPdf;
using MailKit.Net.Smtp;
using MailKit.Security;
using MimeKit;
// Generate PDF document with IronPDF
var renderer = new ChromePdfRenderer();
string HTML = "<h1>Monthly Report</h1><p>Generated automatically.</p>";
PdfDocument PDF = renderer.RenderHtmlAsPdf(html);
// Build new email message
var message = new MimeMessage();
message.From.Add(new MailboxAddress("Sender", "sender@example.com"));
message.To.Add(new MailboxAddress("Recipient", "recipient@example.com"));
message.Subject = "Your Report is Ready";
// Create body with PDF attachment
var builder = new BodyBuilder();
builder.TextBody = "Please find your report attached.";
builder.Attachments.Add("Report.pdf", pdf.BinaryData, new ContentType("application", "pdf"));
message.Body = builder.ToMessageBody();
// Send email via SMTP server
using var client = new SmtpClient();
await client.ConnectAsync("smtp.example.com", 587, SecureSocketOptions.StartTls);
await client.AuthenticateAsync("username", "password");
await client.SendAsync(message);
await client.DisconnectAsync(true);
using IronPdf;
using MailKit.Net.Smtp;
using MailKit.Security;
using MimeKit;
// Generate PDF document with IronPDF
var renderer = new ChromePdfRenderer();
string HTML = "<h1>Monthly Report</h1><p>Generated automatically.</p>";
PdfDocument PDF = renderer.RenderHtmlAsPdf(html);
// Build new email message
var message = new MimeMessage();
message.From.Add(new MailboxAddress("Sender", "sender@example.com"));
message.To.Add(new MailboxAddress("Recipient", "recipient@example.com"));
message.Subject = "Your Report is Ready";
// Create body with PDF attachment
var builder = new BodyBuilder();
builder.TextBody = "Please find your report attached.";
builder.Attachments.Add("Report.pdf", pdf.BinaryData, new ContentType("application", "pdf"));
message.Body = builder.ToMessageBody();
// Send email via SMTP server
using var client = new SmtpClient();
await client.ConnectAsync("smtp.example.com", 587, SecureSocketOptions.StartTls);
await client.AuthenticateAsync("username", "password");
await client.SendAsync(message);
await client.DisconnectAsync(true);
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

このコードサンプルは、PDFから電子メールへのワークフローの完全な動作例を1回の操作で作成します。 BodyBuilder.Attachments.Addメソッドは3つのパラメータを受け取ります: 受信者が見るファイル名、IronPDFからのPDFバイト配列、添付ファイル形式をapplication/pdfと指定するMIMEタイプです。 非同期メソッドは、操作が呼び出し元のスレッドをブロックしないことを保証し、これは複数の同時リクエストを処理するWebアプリケーションに不可欠です。

SecureSocketOptions.StartTlsパラメータは、SMTPサーバーアドレスとの暗号化通信を可能にし、送信中の認証情報と電子メール本文のコンテンツを保護します。 プレースホルダーのSMTPクライアント設定を、電子メールプロバイダの設定値に置き換えてください。 Gmailなどのサービスでは、SMTP認証にアプリのパスワードが必要であることに注意してください。

How to Send Generated PDF File as Attachment in Email from C# Using IronPDF:画像6 - クロスプラットフォームの互換性

System.Net.Mailはファイル添付の代替手段としてどのように使用できますか?

.NETの古いバージョンを使用しているプロジェクトや最小限の依存関係を必要とするプロジェクトでは、System.Net.Mailが組み込みの電子メール機能を提供します。 マイクロソフトは、新規開発にはMailKitを推奨していますが、このアプローチは、よりシンプルなシナリオでも有効です。 次のコードは、SmtpClientクライアントとMailMessageクラスを使用した完全な動作例を示しています。

using IronPdf;
using System.Net;
using System.Net.Mail;
// Generate PDF document
var renderer = new ChromePdfRenderer();
PdfDocument PDF = renderer.RenderHtmlAsPdf("<h1>Invoice #1001</h1>");
// Create new MailMessage with attachment
using var message = new MailMessage("sender@example.com", "recipient@example.com");
message.Subject = "Invoice Attached";
message.Body = "Your invoice is attached to this email.";
// Attach PDF file from new MemoryStream
var stream = new MemoryStream(pdf.BinaryData);
message.Attachments.Add(new Attachment(stream, "Invoice.pdf", "application/pdf"));
// Send email via SMTP server
using var client = new SmtpClient("smtp.example.com", 587);
client.Credentials = new NetworkCredential("username", "password");
client.EnableSsl = true;
await client.SendMailAsync(message);
using IronPdf;
using System.Net;
using System.Net.Mail;
// Generate PDF document
var renderer = new ChromePdfRenderer();
PdfDocument PDF = renderer.RenderHtmlAsPdf("<h1>Invoice #1001</h1>");
// Create new MailMessage with attachment
using var message = new MailMessage("sender@example.com", "recipient@example.com");
message.Subject = "Invoice Attached";
message.Body = "Your invoice is attached to this email.";
// Attach PDF file from new MemoryStream
var stream = new MemoryStream(pdf.BinaryData);
message.Attachments.Add(new Attachment(stream, "Invoice.pdf", "application/pdf"));
// Send email via SMTP server
using var client = new SmtpClient("smtp.example.com", 587);
client.Credentials = new NetworkCredential("username", "password");
client.EnableSsl = true;
await client.SendMailAsync(message);
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

ここでの重要な違いは、PDFファイルを添付する前にバイト配列から新しいMemoryStreamを作成することです。Attachmentクラスのコンストラクタは、ストリーム、ファイル名、MIMEタイプをパラメータとして受け取ります。 MailMessageとSmtpClientの両方は、送信完了後の適切なリソース廃棄を保証するために、using文でラップされています。 message.Attachments.Add メソッドは、ストリームから新しい添付オブジェクトを作成します。

出力

How to Send Generated PDF File as Attachment in Email from C# Using IronPDF:画像7 - 生成されたPDF出力

OAuth認証、IMAPサポート、複雑なMIME処理などの高度な機能を必要とする新しいプロジェクトには、MailKitを選択してください。 System.Net.Mailは、よりシンプルな要件や、外部依存を最小限に抑えることを優先する場合に使用してください。

PDF電子メール添付の実用的なアプリケーションとは

このPDF生成とメール配信のパターンは、数多くのビジネスシナリオをサポートしています。 インボイスオートメーションは、取引完了後すぐに購入確認書を送信します。 レポート配信は、手作業による介入なしに、関係者にスケジュールされた分析を提供します。 領収書の作成により、顧客は購入した商品をすぐに文書化できます。 各使用例では、PDFドキュメントを作成し、添付ファイルとして自動的に送信する機能が役立ちます。

インメモリアプローチは、ファイルベースの代替案よりも利点があります。 アプリケーションは、ディスクI/Oのオーバーヘッドを回避し、一時ファイルのクリーンアップの必要性を排除します。 トラフィックの多いウェブアプリケーションでは、この効率性が特に重要になります。

IronPDFのレンダリングオプションは余白、ヘッダー、フッター、ページサイズのカスタマイズを可能にします。 開発者は、PDFの添付ファイルとともに、プレーンテキストまたはHTML形式の電子メール本文を含む、顧客とのコミュニケーションに適したプロフェッショナルなドキュメント出力を作成できます。

結論

IronPdfとC#メールライブラリを組み合わせることで、自動化されたドキュメント配信のための効率的なワークフローを実現します。 IronPDFのBinaryDataプロパティはバイト配列としてPDFコンテンツへの直接アクセスを提供し、MailKitまたはSystem.Net.Mailは電子メール送信をシームレスに処理します。 このアプローチでは、不要なファイルシステムのやり取りを避けることで、効率的な操作を維持します。

単純な通知メールから複雑なドキュメント自動化システムまで、さまざまなパターンがあります。 請求書システム、レポート作成ツール、顧客コミュニケーションツールのいずれを構築する場合でも、このインメモリPDF-to-Emailワークフローは強固な基盤を提供します。 完全な動作例コードをダウンロードして、特定のプロジェクトの要件に適合させることができます。

無料トライアルを開始してIronPDFのPDF生成機能をお試しいただくか、本番環境への導入のためのライセンスオプションをご覧ください。

How to Send Generated PDF File as Attachment in Email from C# Using IronPDF:画像8 - ライセンス

よくある質問

C# で、 生成 さ れた PDF を電子 メ ール添付で送信す る には ど う すれば よ いで し ょ う か。

IronPDFを使用すると、PDF作成機能と.NETのメール送信機能を統合することで、生成されたPDFファイルをメールの添付ファイルとして簡単に送信することができます。

.NETアプリケーションでPDFファイルを電子メールで送信する利点は何ですか?

.NETアプリケーションでPDFファイルを電子メールで送信すると、ドキュメント配信が自動化され、ビジネスワークフローが合理化され、顧客とのコミュニケーションが強化されます。

IronPdfはメール添付用のPDFの動的コンテンツを扱うことができますか?

IronPDFはPDFコンテンツを動的に生成することが可能で、カスタマイズされたPDFを電子メールの添付ファイルとして送信する必要があるイベント駆動型のアプリケーションに適しています。

IronPDFのメール送信メソッドでよく使われるパラメータは何ですか?

一般的なパラメータには、電子メールの件名、送信者情報、イベント駆動型アプリケーションの効率的な処理を保証するEventArgsが含まれます。

なぜIronPdfがドキュメント配信の自動化に適しているのですか?

IronPDFは信頼性の高いPDF作成を提供し、C#のメール送信機能とシームレスに統合されているため、ドキュメント配信の自動化に適しています。

IronPdfでPDFのメール送信をスケジュールできますか?

はい、IronPDFをスケジュールタスクに統合することで、指定した時間にPDFメールを自動送信し、ワークフローの効率を向上させることができます。

IronPdfは様々なデータソースからPDFを作成し、電子メールに添付することをサポートしていますか?

IronPDFは複数のデータソースからのPDF作成をサポートし、開発者が電子メールに添付するための包括的なドキュメントを作成することを可能にします。

IronPdfは顧客とのEメールコミュニケーションをどのように強化していますか?

IronPDFは詳細なPDFドキュメントを作成し、添付ファイルとして送信できるようにすることで、顧客とのEメールコミュニケーションのプロフェッショナリズムと明瞭性を高めます。

IronPdfを使って請求書やレポートをPDF添付で送ることはできますか?

IronPDFは請求書、レポート、その他のドキュメントをPDFで作成し、送信するのに適しており、様々なビジネスニーズに対応します。

IronPdf はビジネスワークフローの改善においてどのような役割を果たしますか?

IronPDFはPDFドキュメントのシームレスな作成と配布を可能にし、手作業による介入やエラーを減らすことで、ビジネスワークフローを改善します。

カーティス・チャウ
テクニカルライター

Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。

開発以外にも、CurtisはIoT(Internet of Things)への強い関心を持ち、ハードウェアとソフトウェアの統合方法を模索しています。余暇には、ゲームをしたりDiscordボットを作成したりして、技術に対する愛情と創造性を組み合わせています。