我正在使用Exchange2007拾取目录通过System.Net.Mail.SmtpClient
从我的ASP.NET应用程序发送电子邮件。因此,我使用SmtpClient.DeliveryMethod = SmtpDeliveryMethod.SpecifiedPickupDirectory
。它可以正常发送电子邮件,但后来我注意到密件抄送根本不起作用。放置在拾取文件夹中的文件似乎具有正确的设置,但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>
联系人@和林赛@是密件抄送收件人。当我使用网络发送时,它工作得很好。密件抄送仅停止使用分拣目录。你知道,我使用的是Windows Server2008和ASP.NET 3.5 / C#。
解决方法
Exchange 2007似乎忽略了X-Receiver,并期望看到密件抄送:。因此,我求助于mailMessage.Headers.Add(“密件抄送”,bccList),其中bccList是电子邮件地址的分号分隔列表。这很好用。
但正如Chase Seibert指出的那样,如果你在电子邮件客户端中查看邮件的标题,你仍然可以看到列出的所有X-Receiver。尽管Bcc被剥离并且因此对接收者隐藏。我认为抑制X-Receivers列表的最好方法是不在mailMessage.Bcc属性中包含任何内容。
发布于 2009-03-10 17:45:34
这肯定适用于Windows 2003 Server以及操作系统附带的MS SMTP实现。我的理解是Exchange使用相同的服务来完成它的发送。
虽然这可能没有回答您的问题,但我想指出的是,拾取方法有一个您可能没有意识到的缺点。通常,MS SMTP会在入站传输期间从EML中剥离BCC和X-Recipient标头。
当您将EML放入拾取时,您将跳过此步骤。因此,如果远程收件人查看电子邮件标题,则他们实际上能够看到密件抄送收件人。尝试向gmail帐户发送电子邮件并以密件传给其他人。如果您在Gmail中查看邮件头,您将看到密件抄送收件人。
我建议使用SMTP传递此消息。
https://stackoverflow.com/questions/631799
复制相似问题