1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

C# でメールを送信する方法(テキスト・HTML・添付ファイル対応)

Last updated at Posted at 2025-07-04

日常の開発や自動化タスクにおいて、電子メールは依然として最も一般的なデータ送信手段の一つです。コードからメールを送信することで、業務効率の向上や一括通知・レポート配信などが実現できます。本記事では、C# を使用して、テキスト本文・HTML 本文・添付ファイルを含むメールを送信する方法を紹介し、サンプルコードを交えて解説します。

本記事では、Free Spire.Email for .NET を使用しています。NuGet からインストール可能です:

Install-Package FreeSpire.Email

C# でメールメッセージを作成する

Spire.Email では、MailAddressMailMessage クラスを使って簡単にメールメッセージを構築できます。複数の宛先、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);

送信結果:

C#でメールを送信


まとめ

Free Spire.Email for .NET を使用することで、C# 開発者は以下のような高機能なメール送信処理を簡単に実装できます:

  • テキスト形式および HTML 形式のメール送信:多様なクライアントに対応
  • 複数の受信者・Cc・Bcc のサポート:業務連絡や通知に最適
  • 添付ファイルの追加:レポート・画像・契約書などの送信に対応
  • SMTP クライアントの構成:Gmail・Outlook・社内メールなどに対応

これらの機能は、レポートの自動配信、システムアラート、ユーザー向け通知など、さまざまなシナリオに応用可能です。

さらに詳しい使い方については、Spire.Email for .NET チュートリアルセンター をご覧ください。

1
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?