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 プロパティに何も含めないことだと思います。