1

Exchange 2007 ピックアップ ディレクトリを使用して、ASP.NET アプリケーションからメールを送信していますSystem.Net.Mail.SmtpClient。したがって、私は使用してSmtpClient.DeliveryMethod = SmtpDeliveryMethod.SpecifiedPickupDirectoryいます。メールは問題なく送信されますが、BCC がまったく機能していないことに気付きました。ピックアップ フォルダに配置されているファイルは正しい設定になっているようですが、Exchange は X-Receiver リストを無視しています。作成される EML ファイルのサンプルを次に示します。

X-Sender: "Joe" <joe@example.com>
X-Receiver: david@example.com
X-Receiver: contact@example.com
X-Receiver: lindsey@example.com
MIME-Version: 1.0
From: "Joe" <joe@example.com>
To: david@example.com
Date: 10 Mar 2009 9:32:27 -0500
Subject: Test Message
Content-Type: text/html; charset=us-ascii
Content-Transfer-Encoding: quoted-printable

<p>Test Message</p>

contact@ と lindsey@ は BCC 受信者です。ネットワーク送信を使用すると、正常に動作します。BCC は、ピックアップ ディレクトリの操作を停止するだけです。ご存知のように、私は Windows Server 2008 と ASP.NET 3.5 / C# を使用しています。

回避策

Exchange 2007 は X-Receiver を無視し、代わりに Bcc: を期待しているようです。そこで、私は mailMessage.Headers.Add("Bcc", bccList) を実行することにしました。ここで、bccList はセミコロンで区切られた電子メール アドレスのリストです。それはうまくいきます。

しかし、Chase Seibert が指摘したように、電子メール クライアントのメッセージのヘッダーを見ると、すべての X-Receiver が一覧表示されています。ただし、Bcc は取り除かれているため、受信者から隠されています。したがって、誰かがメッセージを開いてすべての Bcc を見る可能性がある Bcc の効果が得られます。X-Receivers リストを抑制する最善の方法は、mailMessage.Bcc プロパティに何も含めないことだと思います。

4

1 に答える 1

1

これは、OS に同梱されている MS SMTP 実装のみを使用する Windows 2003 Server で確実に機能します。私の理解では、Exchange は同じサービスを使用して送信を行っています。

これはあなたの質問の答えではないかもしれませんが、Pickup メソッドには、あなたが気づいていないかもしれない欠点があることに注意してください。通常、MS SMTPは、インバウンド トランスポート中にEML から BCC および X-Recipient ヘッダーを取り除きます。

EML を Pickup に入れるときは、この手順をスキップします。したがって、リモートの受信者は、電子メールのヘッダーを見れば、BCC 受信者を実際に見ることができます。Gmail アカウントにメールを送信し、別のユーザーに BCC を送信してみてください。Gmail でヘッダーを表示すると、BCC 受信者が表示されます。

代わりに、SMTP を使用してこのメ​​ッセージをハンドオフすることをお勧めします。

于 2009-03-11T01:45:34.327 に答える