在一个公司或者一个组织的范围里,存放在Exchange服务器里的电子邮件地址应该是唯一的。如果有两个用户拥有相同的 e-mail地址(用户名可以不同,只是e-mail地址相同),发送到这两个用户的e-mail都会被退回,并且返回一个无法传递报告(NDR),告诉你:收件人地址不明。
MSEXCH:IMS:Microsoft:testdomain:SERVER1 0 (000C0595) Ambiguous Recipient
大家都知道,如果你想创建一个邮件接受者并为他分配一个已经使用的电子邮件,Exchange服务器会报告一个错误,显示邮件冲突。如果这个错误消息是通过SMTP发送的,系统还会将标号为10000的事件和这个错误的消息记录在事件日志里。
但是,确实存在一些情况,可能会导致创建这种地址冲突的电子邮件。情况之一是,管理员在复制操作开始或者完成之前,在两个不同的服务器上创建了相同地址的电子邮件。举个例子,两个不同的部门在开始内部复制之前并没有确认两个部门之间所有e-mail地址的唯一性,结果复制完成之后就会产生这种e -mail地址冲突的情况。
要解决这个问题,首先你得从产生错误日志的服务器上导出一个全局地址列表(GAL),该列表应该是一个.CSV格式的文件,并且包含了邮箱、分发列表、自定义邮件接收者以及隐藏对象等等内容。最后这个隐藏对象比较重要,因为通常情况下,系统会把地址不明确的e-mail附加在这些隐藏对象(例如转向器)上。
接下来把.CSV文件导入到一个可以识别它的程序里,例如微软的Excel,一个数据库管理系统或者一个电子制表软件(如果你的全局地址列表很大,我建议你把.CSV文件导入到一个数据库中,因为数据库在处理大量的数据和记录方面要更胜一筹)。然后将数据记录以e-mail地址字段为标准进行排列,你就会看见系统把有相同e-mail地址的记录放在一起成对显示了。
如果程序支持的话(例如Access或者SQL Server),你还可以用SQL查询来把相同地址的邮件记录给找出来,语句如下:
SELECT email_address FROM csv_export_table GROUP BY email_address HAVING COUNT(*)>1
在这条语句中,email_address表示包含用户e-mail地址的字段名,而csv_export_table表示你把.CSV数据导入到数据库中后所存储的表的名字。