Vb.net 为什么';使用SmtpDeliveryMethod.SpecifiedPickupDirectory时,电子邮件上的密件抄送邮件头是否有效?

Vb.net 为什么';使用SmtpDeliveryMethod.SpecifiedPickupDirectory时,电子邮件上的密件抄送邮件头是否有效?,vb.net,exchange-server,exchange-server-2010,system.net.mail,Vb.net,Exchange Server,Exchange Server 2010,System.net.mail,我们有一个使用System.Net.Mail 电子邮件会被发送到一个文件夹,并且会运行一个作业,在一天中的指定时间将文件复制到Exchange服务器上的分拣文件夹。使用密件抄送字段将电子邮件副本发送到内部邮箱 存在这样一种情况,Bcc属性不会添加到使用Exchange的分拣文件夹发送的电子邮件中,因此解决方法是将Bcc字段直接添加到邮件标题中,但这从2012年7月28日起停止工作 ' BCC doesn't work when sent internally using the Pickup f

我们有一个使用
System.Net.Mail

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

存在这样一种情况,
Bcc
属性不会添加到使用Exchange的分拣文件夹发送的电子邮件中,因此解决方法是将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标准计算机上使用Exchange 2010

编辑:

那天安装了一大堆更新。我猜其中一个是导致这个问题的原因,但是有一个庞大的列表,而且进展缓慢。有人知道与密件抄送邮件头相关的任何已知问题没有通过以下更新得到处理吗

  • Exchange Server 2010更新汇总6(KB2529939)
  • Exchange Server 2010更新汇总3-v3(KB2608646)
  • Microsoft Office 2010筛选器包Service Pack 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
    • 安全更新KB269988
    • 安全更新KB2709715
    • 安全更新KB2718523
    • 安全更新KB2719985
    • 更新KB2545698
    • 更新KB2547666
    • 更新KB2552343
    • 更新KB2563227
    • 更新KB2603229
    • 更新KB2507047
    • 更新KB2608658
    • 更新KB2633952
    • 更新KB2640148
    • 更新KB2660075
    • 更新KB2677070
    • 更新KB2699779
    • 更新KB2709630
    • 更新KB2718704
    • Windows IE 9

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

我无法确定是哪个更新导致了这个问题,也没有时间一次卸载一个更新来解决这个问题,所以找到了一个替代方法

我注意到,在使用我的当前代码的电子邮件中,标题信息不再添加,但将地址添加为密件抄送仍然会在邮件标题中创建第二行
X-Receiver
(当您将邮件放入收件文件夹时,Exchange会忽略该行),因此,我编写了一个脚本,只需在delivery文件夹中的电子邮件中循环,并将第二行
X-Receiver
替换为
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:“测试”
X接收器:receipient@mydomain.com
X接收器:bccRecipient@mydomain.com
MIME版本:1.0

X-Sender:“测试”
X接收器:receipient@mydomain.com
密件抄送:bccRecipient@mydomain.com
MIME版本:1.0
当.eml邮件被放入Exchange的收件文件夹时,它会将电子邮件的盲副本正确发送到指定的密件抄送地址

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