電子メールを送信するときは、受信者に正常に配信されたかどうかを知りたいと思います。同様に重要なのは、電子メールが配信できない場合に発生する電子メールのバウンスを検出および管理する機能です。この問題は、無効な電子メール アドレス、メールボックスの満杯、サーバーの問題など、さまざまな理由で発生する可能性があります。これらのバウンスを検出することは、電子メール リストをクリーンで最新の状態に維持し、メッセージが適切な人に確実に届くようにするために重要です。この記事では、C# .NET 環境で電子メールのバウンスと配信通知を効果的に処理する方法を説明します。
電子メールのバウンスと配信通知を処理するための C# .NET API
C# .NET で電子メールのバウンスと配信通知を効率的に管理するには、電子メール関連のタスクに包括的なツールと機能のセットを提供する Aspose.Email ライブラリを使用します。 Aspose.Email for .NET。 API の可能性を利用するには、ダウンロード を通じて DLL を取得するか、次のコマンドを使用して NuGet からインストールします。
PM> Install-Package Aspose.Email
配信通知を含む電子メールの送信
以下のコード スニペットは、Aspose.Email を使用して電子メール メッセージを作成し、配信通知を設定する方法を示しています。このコードを使用すると、電子メール メッセージを作成し、送信者と受信者のアドレスを指定し、成功と失敗の配信通知を構成できます。さらに、より包括的な追跡のためにメッセージに MIME ヘッダーが追加されます。コードは次の手順を実行します。
新しい電子メール メッセージの作成: コードは、新しい MailMessage オブジェクトを作成することから始まります。 MailMessage は、送信可能な eml メッセージを表すクラスです。
配信通知の設定: DeliverNotificationOptions は OnSuccess と OnFailure の両方に設定されます。これは、送信者がメッセージが正常に配信された場合、または配信が失敗した場合に配信レポートの受信を希望していることを意味します。
読み取りおよび廃棄通知用の MIME ヘッダーの追加: メッセージ オブジェクトのヘッダーは、送信者の電子メールに「Read-Receipt-To」ヘッダーと「Disposition-Notification-To」ヘッダーを追加するために使用されます。これらのヘッダーは、受信者による電子メールの受信および処理時に、送信者の電子メール アドレスへの読み取り通知と処理通知をそれぞれ要求します。
SMTP クライアントのセットアップ: SmtpClient クラスは電子メール メッセージの送信に使用されます。このクラスのインスタンスは、指定されたホストとユーザーの資格情報を使用して作成されます。
メッセージの送信: 最後に、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);
電子メールのバウンスの処理
電子メールの配信を確実に成功させることに加えて、バウンスを処理するためにライブラリの機能を活用できます。以下のコード サンプルは、返送された電子メール メッセージをロードしてステータスを確認する方法を示しています。ファイル名、バウンス ステータス、アクション、受信者、理由、ステータス、受信者の電子メール アドレスなど、返送された電子メールに関する重要な情報を元のメッセージから取得して表示します。コードは次の手順を実行します。
このコードは、MailMessage クラスのインスタンスを作成することから始まり、Load メソッドを使用して指定されたファイルから電子メール メッセージをロードします。
次に、CheckBounced メソッドを呼び出して、電子メールがバウンスされたかどうかを確認します。この操作の結果は、BounceResult オブジェクトに保存されます。
次に、コードは fileName をコンソールに出力し、次のプロパティを通じてメッセージに関する詳細情報を提供します。
result.IsBounced property represents whether the email has been bounced or not.
結果.アクション property contains the action associated with the bounce.
結果.受信者 property is indicating the recipient of the bounced email.
結果.理由 property provides the reason for the email bounce.
結果.ステータス property is representing the status of the bounce.
result.OriginalMessage.To[0].Address property contains the email address of the recipient from the original message.
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 の詳細情報やその他の機能については、ドキュメント を参照してください。質問がある場合、または問題に直面した場合は、フォーラムにアクセスしてください。