3

我们有一个电子邮件工作使用System.Net.Mail

电子邮件被发送到一个文件夹,并运行一个作业以在一天中的指定时间将文件复制到我们 Exchange 服务器上的 Pickup 文件夹。使用密件抄送字段将电子邮件副本发送到内部邮箱。

存在一个已知问题,即该Bcc属性不会添加到使用 Exchange 的 Pickup 文件夹发送的电子邮件中,因此解决方法是将 Bcc 字段直接添加到邮件标头,但是从 2012 年 7 月 28 日起停止工作。

' BCC doesn't work when sent internally using the Pickup folder, 
' so need to add to message headers instead
'message.Bcc.Add(New MailAddress("internalMailbox@mydomain.com"))
message.Headers.Add("Bcc", "internalMailbox@mydomain.com")

Dim smtp = New SmtpClient(exchangeServer)
smtp.DeliveryMethod = SmtpDeliveryMethod.SpecifiedPickupDirectory
smtp.PickupDirectoryLocation = temporaryEmailFolder

smtp.Send(message)

Microsoft 是否更改了 Exchange 中的某些内容,因此电子邮件标头中的密件抄送地址也不再起作用?或者还有其他方法可以解决这个问题吗?

我尝试切换到System.Web.Mail,但无法将消息传递到文件夹。

我们在 Windows Server 2008 R2 Standard 机器上使用 Exchange 2010

编辑:

那天安装了一大堆更新。我猜其中一个是造成这个问题的原因,但是它们的列表很大,而且进展缓慢。任何人都知道与未通过以下更新处理的密件抄送邮件标头相关的任何已知问题吗?

  • Exchange Server 2010 更新汇总 6 (KB2529939)
  • Exchange Server 2010 更新汇总 3-v3 (KB2608646)
  • Microsoft Office 2010 过滤器包服务包 1 (SP1)
  • Silverlight 更新
  • 和 52 个安全更新、热修复和 Windows 更新
    • 修补程序 KB2679255
    • 安全更新 KB2536276
    • 安全更新 KB2560656
    • 安全更新 KB2564958
    • 安全更新 KB2567680
    • 安全更新 KB2570947
    • 安全更新 KB2584146
    • 安全更新 KB2585542
    • 安全更新 KB2604115
    • 安全更新 KB2620704
    • 安全更新 KB2520712
    • 安全更新 KB2521440
    • 安全更新 KB2631813
    • 安全更新 KB2643719
    • 安全更新 KB2644615
    • 安全更新 KB2645640
    • 安全更新 KB2653956
    • 安全更新 KB2654428
    • 安全更新 KB2655992
    • 安全更新 KB2656356
    • 安全更新 KB2656373
    • 安全更新 KB2656411
    • 安全更新 KB2658846
    • 安全更新 KB2659262
    • 安全更新 KB2667402
    • 安全更新 KB2676562
    • 安全更新 KB2685939
    • 安全更新 KB2686831
    • 安全更新 KB2688338
    • 安全更新 KB2690533
    • 安全更新 KB2691442
    • 安全更新 KB2695962
    • 安全更新 KB2698365
    • 安全更新 KB2699988
    • 安全更新 KB2709715
    • 安全更新 KB2718523
    • 安全更新 KB2719985
    • 更新 KB2545698
    • 更新 KB2547666
    • 更新 KB2552343
    • 更新 KB2563227
    • 更新 KB2603229
    • 更新 KB2507047
    • 更新 KB2608658
    • 更新 KB2633952
    • 更新 KB2640148
    • 更新 KB2660075
    • 更新 KB2677070
    • 更新 KB2699779
    • 更新 KB2709630
    • 更新 KB2718704
    • 视窗 IE 9

或者有谁知道更简单的方法来检查更新的功能,以及这些更新是否导致了这个特定问题?

4

1 回答 1

1

我不知道是哪个更新导致了这个问题,也没有时间一次卸载一个来解决这个问题,所以找到了一个替代方案。

我注意到标题信息不再使用我当前的代码添加到电子邮件中,但是将地址添加为密件抄送仍然会X-Receiver在邮件标题中创建第二行(当您将邮件放入 Pickup 文件夹时,Exchange 会忽略该行),所以我编写了一个脚本,它简单地遍历传递文件夹中的电子邮件,并将第二X-Receiver行替换为 a Bcc

' This no longer adds Bcc to message header for whatever reason
'message.Headers.Add("Bcc", "bccRecipient@mydomain.com")
message.Bcc.Add(New MailAddress("bccRecipient@mydomain.com"))

...

Dim content As String
Dim regex As Regex = New Regex("(X-Receiver:.*?\n)(X-Receiver:)")

' Replace of the 2nd instance of "X-Receiver:" with "Bcc:"
For Each fileName As String In Directory.GetFiles(EMAIL_DELIVERY_FOLDER)
    content = File.ReadAllText(fileName)
    content = regex.Replace(content, "$1Bcc:", 1)
    File.WriteAllText(fileName, content)
Next

这会将电子邮件标题从

X-Sender: "Test"
 <sender@mydomain.com>
X-Receiver: receipient@mydomain.com
X-Receiver: bccRecipient@mydomain.com
MIME-Version: 1.0

X-Sender: "Test"
 <sender@mydomain.com>
X-Receiver: receipient@mydomain.com
Bcc: bccRecipient@mydomain.com
MIME-Version: 1.0

当 .eml 邮件被放入 Exchange 的 Pickup 文件夹时,它会正确地将电子邮件的密件副本发送到指定的密件抄送地址

于 2012-09-14T15:45:40.370 回答