发件人的ID信息是在Exchange Server 2003 Service Pack2中提供的内容,它允许用户将一个特殊的SPF(发件人策略框架或解释为“可允许的发件人地址”)记录添加到DNS服务器中,以此达到对整个邮件域中通过SMTP协议发送的信件的验证。微软推出这项功能的本意是希望越来越多的企业采用这一方式对邮件进行验证,这样就能够很大程度上拒绝一些欺骗地址的垃圾邮件。
一旦为系统装上了Service Pack 2的补丁包,Exchange就开始对收到的邮件的发件人ID进行审核,并将结果附加到邮件的属性中,用户可以通过Outlook来查看这些邮件的属性。就算你对如何让Outlook显示收件人ID并不感兴趣,你也可以关注一下本文的内容,因为这些内容还可以帮助你制定垃圾邮件过滤规则,以此阻挡那些欺骗地址的邮件。
Exchange对发件人ID检查的结果
如果Exchange对一封邮件的发件人ID进行了检查,那么通常会出现下面七种可能的结果:
Pass |
该邮件来自一个经过认证的域的邮件服务器 |
Neutral |
该域并没有提供发件人的任何信息 |
Fail |
这封邮件的地址是伪造的。其原因可能是:发件人的域并不存在、发件人被禁止了、域名被修改过或在这封邮件的头部没有找到任何PRA信息 |
Soft Fail |
这封邮件的发件人有可能是伪造的,但是不能完全确定。 |
None |
该域并没有显示任何SPF记录 |
TempError |
在检查的过程中出现了一些未知错误 |
PermError |
发件人域的SPF记录有问题 |
利用脚本抽取发件人ID信息
现在你应该知道了各种结果代表的含义,那么你就可以通过使用一些脚本语言,从邮件中抽取发件人的ID信息。还好,我们不必从头开始创建这些脚本,微软已经提供了一些范例给我们。
下面这个脚本是从微软的网站上找到的。它运行在Outlook2003的环境下,用户只须将其存为文本文件并命名为SenderID.CFG然后放\Program Files\Microsoft Office\Office11\forms\language ID文件夹中即可。
;**********The CFG file**********
[Description]
MessageClass=IPM.Note.SenderID
CLSID={00020D0C-0000-0000-C000-000000000046}
DisplayName=SenderID Extension Form
Category=Standard
Subcategory=Form
Comment=This forms allows the SenderID to be viewed in a column in Outlook
LargeIcon=IPML.ico
SmallIcon=IPMS.ico
Version=1.0
Locale=enu
Hidden=1
Owner=Microsoft Corporation
[Platforms]
Platform1=Win16
Platform2=NTx86
Platform9=Win95
[Platform.Win16]
CPU=ix86
OSVersion=Win3.1
[Platform.NTx86]
CPU=ix86
OSVersion=WinNT3.5
[Platform.Win95]
CPU=ix86
OSVersion=Win95
[Properties]
Property01=SenderID
[Property.SenderID]
Type=3
;NmidString=PR_SENDER_ID_STATUS
NmidInteger=0x4079
DisplayName=SenderID
[Verbs]
Verb1=1
[Verb.1]
DisplayName=&Open
Code=0
Flags=0
Attribs=2
[Extensions]
Extensions1=1
[Extension.1]
Type=30
NmidPropset={00020D0C-0000-0000-C000-000000000046}
NmidInteger=1
Value=1000000000000000
;**********END CFG
配置Outlook让其运行这个脚本
-
打开Outlook并选择“工具”|“选项”。
-
选择“其他”标签并单击“高级选项”按钮。
-
点击“自定义窗体”按钮然后再点击“管理窗体”按钮。
-
点击“安装”按钮,把刚才的SenderID.CFG安装到你的格式列表中。
-
点击“OK”然后退出对话框。
-
切换到Outlook的主界面,选择收件箱,在邮件显示列名上点击鼠标右键,然后选择“字段选择器”。
-
在列名选择对话框的顶部,有一个下拉菜单,可以供你选择想要显示的列,请选择“窗体…”。
-
Outlook会把你的窗体列表显示出来,而发件人ID扩展格式会出现在相应列表中。将它们拖放到邮件显示列名顶部,这样一来就可以查看收件箱中每封邮件的发件人ID状态了。
你会注意到,发件人ID状态是以数字来表示的,下面是数字和对应的状态列表:
1 = Neutral
2 = Pass
3 = Fail
4 = Soft Fail
5 = None
6 = Temp
7 = Temp Error
8 = Perm Error
更改发件人ID状态的显示选项
要想让Outlook直接显示发件人ID的状态而不是数字,可以参考下面的方法:
1、 在Outlook的收件箱中右键单击邮件显示列名,然后选择“字段选择器”。
2、 在弹出对话框中点击“新建”按钮。
3、 你会见到一个对话框,上面让你输入名字、类型和格式等。你可以为这个列名取名叫SID,然后把类型选择为“公式”。
4、 将下面这些内容粘贴到“公式”的列表中IIf([SenderID]=1,"NEUTRAL",IIf([SenderID]=2,"PASS",IIf([SenderID]=3,"FAIL",IIf([SenderID]=4,"SFAIL",IIf([SenderID]=5,"NONE",IIf([SenderID]=-2147483641,"PERM_ERR",IIf([SenderID]=-2147483642,"TEMP_ERR",[SenderID])))))))
5、 单击OK,创建了一个新的SID列。
6、 现在,Outlook在显示收件箱的邮件时就会多显示一列SID,这样就可以直接查看发件人的ID检查状态了。