電子メールのバウンスと配信通知

電子メールを送信するときは、受信者に正常に配信されたかどうかを知りたいと思います。同様に重要なのは、電子メールが配信できない場合に発生する電子メールのバウンスを検出および管理する機能です。この問題は、無効な電子メール アドレス、メールボックスの満杯、サーバーの問題など、さまざまな理由で発生する可能性があります。これらのバウンスを検出することは、電子メール リストをクリーンで最新の状態に維持し、メッセージが適切な人に確実に届くようにするために重要です。この記事では、C# .NET 環境で電子メールのバウンスと配信通知を効果的に処理する方法を説明します。

電子メールのバウンスと配信通知を処理するための C# .NET API

C# .NET で電子メールのバウンスと配信通知を効率的に管理するには、電子メール関連のタスクに包括的なツールと機能のセットを提供する Aspose.Email ライブラリを使用します。 Aspose.Email for .NET。 API の可能性を利用するには、ダウンロード を通じて DLL を取得するか、次のコマンドを使用して NuGet からインストールします。

PM> Install-Package Aspose.Email

配信通知を含む電子メールの送信

以下のコード スニペットは、Aspose.Email を使用して電子メール メッセージを作成し、配信通知を設定する方法を示しています。このコードを使用すると、電子メール メッセージを作成し、送信者と受信者のアドレスを指定し、成功と失敗の配信通知を構成できます。さらに、より包括的な追跡のためにメッセージに MIME ヘッダーが追加されます。コードは次の手順を実行します。

  1. 新しい電子メール メッセージの作成: コードは、新しい MailMessage オブジェクトを作成することから始まります。 MailMessage は、送信可能な eml メッセージを表すクラスです。

  2. 配信通知の設定: DeliverNotificationOptions は OnSuccess と OnFailure の両方に設定されます。これは、送信者がメッセージが正常に配信された場合、または配信が失敗した場合に配信レポートの受信を希望していることを意味します。

  3. 読み取りおよび廃棄通知用の MIME ヘッダーの追加: メッセージ オブジェクトのヘッダーは、送信者の電子メールに「Read-Receipt-To」ヘッダーと「Disposition-Notification-To」ヘッダーを追加するために使用されます。これらのヘッダーは、受信者による電子メールの受信および処理時に、送信者の電子メール アドレスへの読み取り通知と処理通知をそれぞれ要求します。

  4. SMTP クライアントのセットアップ: SmtpClient クラスは電子メール メッセージの送信に使用されます。このクラスのインスタンスは、指定されたホストとユーザーの資格情報を使用して作成されます。

  5. メッセージの送信: 最後に、MailMessage オブジェクトを引数として SmtpClient オブジェクトの Send メソッドが呼び出され、電子メールが送信されます。

// メッセージを作成する
MailMessage msg = new MailMessage();
msg.From = "sender@sender.com";
msg.To = "receiver@receiver.com";
msg.Subject = "the subject of the message";

// 成功メッセージと失敗メッセージの配信通知を設定し、MIME ヘッダーを追加します。
msg.DeliveryNotificationOptions = DeliveryNotificationOptions.OnSuccess | DeliveryNotificationOptions.OnFailure;
msg.Headers.Add("Read-Receipt-To", "sender@sender.com");
msg.Headers.Add("Disposition-Notification-To", "sender@sender.com");

// メッセージを送信する
SmtpClient client = new SmtpClient("host", "username", "password");
client.Send(msg);

電子メールのバウンスの処理

電子メールの配信を確実に成功させることに加えて、バウンスを処理するためにライブラリの機能を活用できます。以下のコード サンプルは、返送された電子メール メッセージをロードしてステータスを確認する方法を示しています。ファイル名、バウンス ステータス、アクション、受信者、理由、ステータス、受信者の電子メール アドレスなど、返送された電子メールに関する重要な情報を元のメッセージから取得して表示します。コードは次の手順を実行します。

  1. このコードは、MailMessage クラスのインスタンスを作成することから始まり、Load メソッドを使用して指定されたファイルから電子メール メッセージをロードします。

  2. 次に、CheckBounced メソッドを呼び出して、電子メールがバウンスされたかどうかを確認します。この操作の結果は、BounceResult オブジェクトに保存されます。

  3. 次に、コードは fileName をコンソールに出力し、次のプロパティを通じてメッセージに関する詳細情報を提供します。

MailMessage mail = MailMessage.Load(fileName);
BounceResult result = mail.CheckBounced();
Console.WriteLine(fileName);
Console.WriteLine("IsBounced : " + result.IsBounced);
Console.WriteLine("Action : " + result.Action);
Console.WriteLine("Recipient : " + result.Recipient);
Console.WriteLine();
Console.WriteLine("Reason : " + result.Reason);
Console.WriteLine("Status : " + result.Status);
Console.WriteLine("OriginalMessage ToAddress 1: " + result.OriginalMessage.To[0].Address);
Console.WriteLine();

結論

この記事では、電子メールのバウンスと配信通知の重要性について注意を促しました。コードサンプルでサポートされるそれらの処理方法も提供しました。電子メールを正常に配信し、発生する可能性のあるバウンスを管理できる強力なツールを自由に使えるようになりました。これらのプラクティスをプロジェクトに組み込むことで、C# .NET 環境で効果的な電子メール通信を実現し、メッセージが目的の受信者に確実に届くようにすることができます。

Aspose.Email for .NET の詳細情報やその他の機能については、ドキュメント を参照してください。質問がある場合、または問題に直面した場合は、フォーラムにアクセスしてください。

関連項目