4

.NET MailMessageクラスを使用して電子メールメッセージを送信しようとしています。このクラスには、バウンスが別の電子メールアドレスに返されるようにreturn-pathヘッダーを追加することもできます。コードは以下のとおりです。

MailMessage mm = new MailMessage(
    new MailAddress(string.Format("{0}<{1}>", email.FromName, email.FromEmail)), 
    new MailAddress(emailTo));

mm.Subject = ReplaceValues(email.Subject, nameValues);
mm.ReplyTo = new MailAddress(string.Format("{0}<{1}>", email.FromName, email.FromEmail));
mm.Headers.Add("Return-Path", ReturnEmail);

// Set the email html and plain text
// Removed because it is unneccsary for this example

// Now setup the smtp server
SmtpClient smtp = new SmtpClient();
smtp.Host = SmtpServer;
smtp.DeliveryMethod = SmtpDeliveryMethod.PickupDirectoryFromIis;

if (SmtpUsername.Length > 0)
{
    System.Net.NetworkCredential theCredential = 
        new System.Net.NetworkCredential(SmtpUsername, SmtpPassword);
    smtp.Credentials = theCredential;
}

smtp.Send(mm);

送信された電子メールをチェックするときはいつでも、ヘッダーをチェックしますが、常にreturn-pathが欠落しているようです。これを正しく構成するために欠けているものはありますか?上で述べたように、開発マシン(XP)で標準の仮想メールサーバーを使用していますが、最終的にはWindows2003で実行されます。

なぜそれがうまくいかないのか誰かが何か考えを持っていますか?

4

1 に答える 1

4

Return-Path は、SMTP MAIL FROM Envelope に基づいて設定されます。Sender プロパティを使用して、そのようなことを行うことができます。
遅かれ早かれ関連する問題に関する別の議論: System.Net.Mail を使用して SMTP エンベロープ MAIL FROM を設定するにはどうすればよいですか?

ところで、SmtpDeliveryMethod.PickupDirectoryFromIis を使用する場合、Sender プロパティは MAIL FROM として使用されません。この値を保持するには、配信方法としてネットワークを使用する必要があります。この問題の回避策は見つかりませんでした。
PickupDirectoryFromIis、Sender プロパティ、SMTP MAIL FROM エンベロープ

于 2009-01-26T16:26:03.860 に答える