Я использую каталог раскладки 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-Receivers. Хотя скрытая копия скрыта от получателей. Таким образом, вы получаете эффект скрытой копии с возможностью того, что кто-то откроет сообщение и увидит все скрытые копии. Я думаю, что лучший способ подавить список X-Receivers - не включать ничего в свойство mailMessage.Bcc.