我正在开发一个 Outlook 自动化,它将邮件放在特定文件夹中并将其导出为 RFC822 格式的邮件消息。然后,此输出文件将被馈送到 SpamAssassin 工具 sa-learn.exe。
For Each oItem In oFolder.Items
If TypeOf oItem Is RDOMail Then
Set oMailItem = oItem
' Deptermine the fully qualified path to save the file
sFilePath = GetFilePath(oMailItem, "//Mailbox/SpamAssassin/Spam")
'Save the RFC822 format message
oMailItem.SaveAs sFilePath, rdoSaveAsType.olRFC822
DoEvents
oMailItem.UnRead = False
oMailItem.Delete
End If
DoEvents 'Let the Outlook UI thread breathe a bit
Next 'for each
以下是使用此代码保存的消息中的消息标头,其中包含经过编辑的电子邮件地址。
From: "Swift Learning" <**********@***.*************.***>
To: <*****@********.***>
Subject: Foreign Languages are easily learned in this program
Date: Tue, 31 Jul 2012 10:11:38 -0700
Message-ID: <8518205138200566845@smx.jacksonpotts2.com>
MIME-Version: 1.0
Content-Type: multipart/alternative;
boundary="----=_NextPart_000_13AE_01CD6F0A.C9624870"
X-Mailer: Microsoft Outlook 14.0
Thread-Index: AQF4Lq/07oPqx1sKGPa5FKQSalUQXg==
这里缺少的是应该看起来像这样的中继标头。
Received: from [216.104.163.151] by mail.clarkzoo.org (ArGoSoft Mail Server .NET v.1.0.8.4) with ESMTP (EHLO smtp02-forward-1.daemonmail.net)
for <*****@*********.***>; Tue, 31 Jul 2012 12:36:25 -0700
Received: from mxw03.daemonmail.net (unknown [216.104.161.13])
by smtp02-forward-1.daemonmail.net (Postfix) with ESMTP id 4447681FDB;
Tue, 31 Jul 2012 12:18:01 -0700 (PDT)
Received: from localhost (localhost [127.0.0.1])
by mxw03.daemonmail.net (Postfix) with ESMTP id 748CF6A0DD
for <***@******************.***>; Tue, 31 Jul 2012 12:17:52 -0700 (PDT)
如何捕获那些中继标头?
更新:
进一步研究这一点,Outlook 中 MailItem 中存储的原始标头与 Redemption 保存的 RFC822 格式完全不同。
这是一个并排的比较。
Outlook 中“属性”对话框中的原始标题。
Received: from [108.174.54.7] by mail.clarkzoo.org (ArGoSoft Mail Server .NET v.1.0.8.4) with ESMTP (EHLO upgraded.the-ameri-credit-review.com)
for <*****@********.***>; Wed, 01 Aug 2012 07:34:15 -0700
Date: Wed, 1 Aug 2012 09:55:57 -0400
Subject: Your TransUnion, Equifax, and Experian Scores May Have Changed
From: "Credit Check" <info@the-ameri-credit-review.com>
To: <*****@********.***>
Message-ID: <132692318349a4a4158c108651c1428c@upgraded.the-ameri-credit-review.com>
Mime-Version: 1.0
Content-Type: text/html; charset=us-ascii
Content-Transfer-Encoding: 8bit
Content-Disposition: inline
SPF-Received: softfail
X-FromIP: 108.174.54.7
RFC822 格式文件的标头:
From: "Credit Check" <info@the-ameri-credit-review.com>
To: <*****@********.***>
Subject: Your TransUnion, Equifax, and Experian Scores May Have Changed
Date: Wed, 1 Aug 2012 06:55:57 -0700
Message-ID: <132692318349a4a4158c108651c1428c@upgraded.the-ameri-credit-review.com>
MIME-Version: 1.0
Content-Type: multipart/alternative;
boundary="----=_NextPart_000_011B_01CD6FC4.403990C0"
X-Mailer: Microsoft Outlook 14.0
Thread-Index: AQIRB+hjg86/OeRgMx9VYijSdeLwhw==
这些标题只是表面上相同。
- 缺少中继标头
- 日期和主题在不同的位置
- 日期标题已被修改以抑制本地时区
- Content-Type 已从“text/html; charset=us-ascii”更改为“multipart/alternative;”
- 已添加标题并已删除标题
更好的问题是如何捕获消息的原始标头?