日常の開発や自動化タスクにおいて、電子メールは依然として最も一般的なデータ送信手段の一つです。コードからメールを送信することで、業務効率の向上や一括通知・レポート配信などが実現できます。本記事では、C# を使用して、テキスト本文・HTML 本文・添付ファイルを含むメールを送信する方法を紹介し、サンプルコードを交えて解説します。
本記事では、Free Spire.Email for .NET を使用しています。NuGet からインストール可能です:
Install-Package FreeSpire.Email
C# でメールメッセージを作成する
Spire.Email では、MailAddress
と MailMessage
クラスを使って簡単にメールメッセージを構築できます。複数の宛先、Cc(カーボンコピー)、Bcc(ブラインドカーボンコピー)の指定に加え、テキスト形式・HTML 形式の本文も設定可能です。
1. 送信者、受信者、メール本文の設定
コード例:
using Spire.Email;
using Spire.Email.Smtp;
// 送信者と受信者のアドレスを作成
MailAddress from = new MailAddress("Example@gmail.com", "あなたの名前");
MailAddress to1 = new MailAddress("Example1@gmail.com", "ユーザー1");
MailAddress to2 = new MailAddress("Example@126.com", "ユーザー2");
// メールメッセージを作成
MailMessage message = new MailMessage(from, to1);
message.To.Add(to2); // 2人目の受信者を追加
message.Cc.Add(new MailAddress("Example@icloud.com", "Cc宛先"));
message.Bcc.Add(new MailAddress("Example@petalmail.com")); // Bcc を追加
// 件名、HTML 本文、テキスト本文を設定
message.Subject = "月次レポート - 2025年6月";
message.BodyHtml = "<h2 style='color:#2E86C1;'>レポート概要</h2><p>添付の PDF レポートをご確認ください。</p>";
message.BodyText = "レポート概要 - 添付の PDF をご確認ください。";
上記のコードでは、テキストと HTML の両方の本文を設定しています。メールクライアントの対応状況に応じて、HTML が優先的に表示されます。
メールに添付ファイルを追加する
PDF レポートや Excel ファイルなどの添付ファイルは、Attachment
クラスを使って追加します。
コード例:
// 添付ファイルを追加
Attachment attachment = new Attachment(@"Sample.pdf");
message.Attachments.Add(attachment);
ファイルパスを指定するだけで、簡単に添付ファイルとして追加できます。
SMTP を設定してメールを送信する
SMTP(Simple Mail Transfer Protocol)は、クライアントからサーバーへメールを送信するためのプロトコルです。Spire.Email の SmtpClient
クラスを使って、SMTP サーバーに接続し、メールを送信できます。
コード例:
// SMTP クライアントの設定
SmtpClient smtp = new SmtpClient();
smtp.Host = "smtp.gmail.com"; // SMTP サーバー
smtp.Port = 587; // TLS 用のポート
smtp.Username = "Example@gmail.com"; // メールアカウント
smtp.Password = "your_password"; // アプリパスワード
smtp.ConnectionProtocols = ConnectionProtocols.StartTls; // TLS 暗号化プロトコルを使用
// メールを送信
smtp.SendOne(message);
💡 補足:Gmail を使ってメールを送信するには、「アプリ パスワード」の有効化と SMTP サービスの設定が必要です。
完全なコードサンプル
以下に、すべての要素を統合したメール送信の完全なコード例を示します。
using Spire.Email;
using Spire.Email.Smtp;
// 送信者と受信者の設定
MailAddress from = new MailAddress("your_email@gmail.com", "あなたの名前");
MailAddress to1 = new MailAddress("user1@example.com", "ユーザー1");
MailAddress to2 = new MailAddress("user2@example.com", "ユーザー2");
// メールオブジェクトの作成
MailMessage message = new MailMessage(from, to1);
message.To.Add(to2);
message.Cc.Add(new MailAddress("cc@example.com", "Cc 宛先"));
message.Bcc.Add(new MailAddress("bcc@example.com", "Bcc 宛先"));
// 件名と本文の設定
message.Subject = "月次レポート - 2025年6月";
message.BodyHtml = "<h2>レポート概要</h2><p>添付の PDF レポートをご確認ください。</p>";
message.BodyText = "レポート概要 - 添付の PDF ファイルをご確認ください。";
// 添付ファイルを追加
Attachment attachment = new Attachment(@"G:\Documents\Sample.pdf");
message.Attachments.Add(attachment);
// SMTP クライアントを構成して送信
SmtpClient smtp = new SmtpClient();
smtp.Host = "smtp.gmail.com";
smtp.Port = 587;
smtp.Username = "your_email@gmail.com";
smtp.Password = "your_app_password";
smtp.ConnectionProtocols = ConnectionProtocols.StartTls;
smtp.SendOne(message);
送信結果:
まとめ
Free Spire.Email for .NET を使用することで、C# 開発者は以下のような高機能なメール送信処理を簡単に実装できます:
- テキスト形式および HTML 形式のメール送信:多様なクライアントに対応
- 複数の受信者・Cc・Bcc のサポート:業務連絡や通知に最適
- 添付ファイルの追加:レポート・画像・契約書などの送信に対応
- SMTP クライアントの構成:Gmail・Outlook・社内メールなどに対応
これらの機能は、レポートの自動配信、システムアラート、ユーザー向け通知など、さまざまなシナリオに応用可能です。
さらに詳しい使い方については、Spire.Email for .NET チュートリアルセンター をご覧ください。