English 中文(简体)
BCC从未使用SpecifiedPickupDirectory从Exchange 2007发送
原标题:
  • 时间:2009-03-10 19:04:20
  •  标签:

我正在使用Exchange 2007取件目录,并使用System.Net.Mail.SmtpClient从我的ASP.NET应用程序发送电子邮件。因此,我使用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#。

Workaround

似乎Exchange 2007忽略了X-Receiver并期望看到Bcc:。因此,我已经采取了mailMessage.Headers.Add("Bcc", bccList)的方式,其中bccList是一个分号分隔的电子邮件地址列表。那很好用。

但正如Chase Seibert所指出的那样,如果您查看电子邮件客户端中消息的标头,仍然可以看到所有列出的X-接收器。尽管Bcc被剥离并因此隐藏了接收者。因此,您可以获得Bcc的效果,并有可能有人打开消息并查看所有Bcc。我认为压制X-Receivers列表的最佳方法是不在mailMessage.Bcc属性中包含任何内容。

最佳回答

这绝对适用于仅使用操作系统附带的 MS SMTP 实现的 Windows 2003 服务器。我理解 Exchange 使用相同的服务来发送。

虽然这可能回答不了你的问题,但我想指出Pickup方法有一个你可能不知道的缺点。通常,MS SMTP会在邮件传输期间从EML中移除BCC和X-Recipient头。

当您将EML放入Pickup时,您跳过了此步骤。因此,远程收件人实际上将能够查看电子邮件头中的BCC收件人。尝试向一个Gmail帐户发送电子邮件并将其他人列为BCC收件人。如果您在Gmail中查看邮件头,则会看到BCC收件人。

我建议使用SMTP来交接此消息。

问题回答

暂无回答




相关问题
热门标签