未送达报告 (NDR) 是一种类型的发送状态通知。只要邮件无法送达,就会生成 NDR。如果服务器检测到投递失败的原因,则会将该原因与状态代码及所写的相应错误消息相关联。
但是这些NDR都是系统自动生成的,有时候用户可能想自定义NDR中的内容。在Exchange 2003中,需要修改DLL文件才能实现,整个操作过程比较复杂。我们不在这里讲述了。在Exchange 2007,我们可以很容易地实现它。
首先我们需要创建自定义的传递状态通知(DSN),然后将自定义的DSN通过传输规则联系起来。这样当用户发送邮件后会自动触发传输规则,传输规则将根据自定义的DSN向发件人返回未送达报告 (NDR),并删除原始邮件。
1. 创建自定义的DSN:
1) 打开Exchange Management Shell,运行下面的命令:
New-SystemMessage -DsnCode 5.7.228 -Language En -Internal $True -Text ‘Sending messages between the Sales and Brokerage groups is prohibited by policy #123. For more information, see Compliance Policy 123.’
-Internal 参数设置为True,当内部用户发送邮件时触发该DSN。如图1所示。
New-SystemMessage -DsnCode 5.7.228 -Language En -Internal $False -Text ‘Sending messages between the Sales and Brokerage groups is prohibited by policy #123. For more information, see Compliance Policy 123.’
-Internal 参数设置为False,当外部用户发送邮件给您的组织中的用户发送邮件时触发该DSN。如图2所示。
2) 还可以运行下面的命令来检查刚才创建的DSN,如图3所示:
Get-systemmessage
注意:在这里我们只是做演示,对内部发件人和外部发件人使用相同的文本(-Text后面的参数),在实际环境中可以根据自己的需要来设置文本。我们这里设置的语言是英文,您可以设置其他的语言版本比如中文的、日文以及汉文等等。
2. 创建传输规则将自定义DSN关联起来:
1) 打开Exchange Management Console,然后定位到组织配置-Hub Transport,点击传输规则,
2) 右键选择新建传输规则,输入名称比如dsntest。在comment中您可以输入一些信息描述该规则的用途。如图4所示。
3) 然后点击下一步,选中send to people,点击people,点击add,将test001添加进来,如图5所示。
4) 然后点击下一步,选择send bounce message to sender with enhanced status code。如图6所示。然后点击5.7.1,输入5.7.228。你刚才创建DSN指定的代码。当然你也可以点击Delivery not authorized, message refused然后输入自定义的信息。我们这里保持缺省的不变。如图7所示。
5) 点击两次下一步,然后点击new,点击finish。如图8所示。
注:该配置是在150795M1上完成的。
3. 验证结果。
先介绍一下环境配置,我们有两个Exchange 2007组织。它们分别属于域dc.com和域wan.com。
dc.com域中的用户:dc\administrator,dc\test001;
dc.com域中的Exchange 2007服务器名称:150795M1,该服务器有客户端访问服务器、邮箱服务器和中心传输服务器角色,同时该服务器还是DC。
wan.com域中的用户:wan\administrator。
dc.com域中的Exchange 2007服务器名称:roc-dc,该服务器有客户端访问服务器、邮箱服务器和中心传输服务器角色。同时该服务器还是DC。
先在域dc.com中的内部进行测试:
1. 首先通过OWA登录dc\administrator的邮箱,
2. 然后发送一封邮件给dc\test001,
3. 然后等待系统的退信,该NDR中的用户信息部分显示的是我们刚才自定义的信息。如图9所示。
我们首先在域dc.com中的外部进行测试,即使用外部用户wan\administrator发送邮件给dc\test001。
1. 我们先通过OWA登录wan\administrator的邮箱,
2. 然后发送一封邮件给dc\test001,
3. 然后等待系统的退信,系统确实退信了,但是产生的NDR不是我们想要的。如图10所示。
出现该问题是因为当将Exchange 2007服务器升级到update rollup 4或者最新update rollup,DSNConversionMode的缺省值是UseExchangeDSNs。如果该参数设置为UseExchangeDSNs,Exchange Server 2007将DSNs转换为Exchange 2007 DSN格式。以前DSN中包含的任何自定义的文本或附件将会被覆盖。如果将该参数设置为PreserveDSNBody,Exchange Server 2007将DSNs转换为Exchange 2007 DSN。但是,DSN消息中的文本主体会保留。如果您将该参数设置为DoNotConvert,Exchange Server 2007 不修改DSN消息。实际上,Exchange Server 2007将该消息作为标准的邮件来传递。
我们先查看一下Exchange服务器roc-dc 上的DSNConversionMode的缺省值,如图11所示。运行命令:Set-transportConfig -DSNConversionMode DoNotConvert,然后在发送一次邮件给dc\test001。
这个时候收到的NDR正好是我们想要的。如图12所示。由于我们将该参数设置为DoNotConvert,所以Exchange Server 2007没有修改DSN,并且将原来的邮件作为附件附加上。
如果我们运行Set-transportConfig -DSNConversionMode PreserveDSNBody命令的话,这个时候NDR中不包含原来的邮件。如图13所示。
至此有关于Exchange Server 2007自定义未送达报告(NDR)的操作即已完成,从上面的图中也可以看出NDR是对管理人员非常有利的信息同时也使用户可以很快的反映出问题的所在和解决方法。
- 微软将推出卫星解决方案:可连接到 Azure 云服务 - 2020年9月17日
- Windows Terminal 1.0正式发布 - 2020年5月25日
- Azure Lighthouse 相关介绍 - 2020年3月2日
还没有评论