简而言之:合法邮件在垃圾邮件文件夹中登陆,因为EOP(Exchange Online Protection)将邮件标记为垃圾邮件(SCL5)和SPF失败。 所有外部域(例如gmail.com/hp.com/microsoft.com)到客户端域(contoso.com)都会发生这种情况。
背景信息:
我们正在将邮箱迁移到Office 365(Exchange Online)。 这是一个混合部署/丰富共存configuration,其中:
问题是当外部用户发送邮件到组织中的Office 365邮箱(邮件stream:外部 – >邮件网关 – >本地邮件服务器 – > EOP – > Office 365)时,EOP执行SPF查找和硬/软发送失败的邮件与收到邮件的邮件网关的外部IP地址。
(本地邮箱不显示此问题;只有迁移到Office 365的邮箱才能执行此操作。)
插图:
例1:从微软到O365
Authentication-Results: spf=fail (sender IP is 23.1.4.9) smtp.mailfrom=microsoft.com; contoso.mail.onmicrosoft.com; dkim=none (message not signed) header.d=none; Received-SPF: Fail (protection.outlook.com: domain of microsoft.com does not designate 23.1.4.9 as permitted sender) receiver=protection.outlook.com; client-ip=23.1.4.9; helo=exchange2010.contoso.com; X-MS-Exchange-Organization-SCL: 5
例2:从HP到O365
Authentication-Results: spf=none (sender IP is 23.1.4.9) smtp.mailfrom=hp.com; contoso.mail.onmicrosoft.com; dkim=none (message not signed) header.d=none; Received-SPF: None (protection.outlook.com: hp.com does not designate permitted sender hosts) X-MS-Exchange-Organization-SCL: 5
例3:从Gmail到O365
Authentication-Results: spf=softfail (sender IP is 23.1.4.9) smtp.mailfrom=gmail.com; contoso.mail.onmicrosoft.com; dkim=fail (signature did not verify) header.d=gmail.com; Received-SPF: SoftFail (protection.outlook.com: domain of transitioning gmail.com discourages use of 23.1.4.9 as permitted sender) X-MS-Exchange-Organization-SCL: 5
对于带有X-Forefront-Antispam-Report的邮件标题,请参阅http://pastebin.com/sgjQETzM
注意:23.1.4.9是Exchange Online的本地混合Exchange 2010服务器连接器的公用IP地址。
在混合部署的共存阶段,如何阻止外部电子邮件被EOP标记为垃圾邮件?
[2015-12-12更新]
Office 365支持(升级/后端团队)修复了此问题,因为它与我们的设置无关。
我们build议如下:
关键部分是第三点。 “如果没有启用TLS,来自本地Exchange的电子邮件不会被标记为内部/信任电子邮件,并且EOP将检查所有logging,”支持人员表示。
该支持从我们的邮件标题中通过以下行确定了TLS问题:
这表示EOP收到电子邮件时,TLS未启用。 EOP并没有将收到的电子邮件视为信任电子邮件。 正确的应该是这样的:
但是,这不是由我们的设置造成的; 支持人员通过validation来自Exchange 2010混合服务器的详细SMTP日志,帮助我们确保设置正确。
几乎在同一时间,他们的后端团队解决了这个问题,而不让我们知道究竟是什么造成的(不幸的是)。
修复后,我们发现邮件标题有如下的一些重大变化。
对于从Exchange 2003到Office 365的内部源邮件:
X-MS-Exchange-Organization-AuthAs:内部(这是“匿名”)
SCL = -1(SCL = 5)
而对于外部邮件(例如gmail.com)到Office 365:
X-MS-Exchange-Organization-AuthAs:Anonymous(这是一样的)
SCL = 1(SCL = 5)
收到SPF:SoftFail(这是一样的)
尽pipe对于Office 365,gmail.com(外部)的SPF检查仍然不成功,但支持人员表示确实无误,并且所有邮件都将转到“收件箱”而不是“垃圾邮件”文件夹。
作为一个侧面说明,在故障排除期间,后端团队发现了一个似乎很小的configuration问题 – 我们的IP入站连接器(即Exchange 2010混合服务器的公有IP)在我们的IP允许列表中定义(由另一个Office 365支持build议人作为故障排除步骤)。 他们让我们知道我们不应该这样做,事实上这样做可能会导致路由问题。 他们评论说,在第一次通过电子邮件没有被标记为垃圾邮件,所以这里也有一个可能的问题。 然后,我们从IP允许列表中删除IP。 (但是,在IP允许列表设置之前存在垃圾邮件问题,我们不认为允许列表是原因。)
这位支持人士说:“这应该是EOP机制。 所以整个事情应该是由他们的机制引起的。
对于任何感兴趣的人,可以在这里查看与他们的支持人员之一的故障排除线索: https : //community.office365.com/en-us/f/156/t/403396
你确定邮件stream是直接从你的混合服务器到O365吗?
在运行混合向导时,应该在本地创build连接器,并在O365中创build连接器,从而将邮件作为内部邮件发送到林间。 这意味着它将绕过EOP /垃圾邮件检查,你不应该看到这些SPF信息。
如果您的边缘设备正在修改标题,这可能会导致您的问题 – 在您的服务器和O365之间,不应该修改消息标题。 确保没有可能覆盖混合向导创build的连接器的现有连接器。 您可以随时删除已创build的现有连接器,然后重新运行该向导以重新创build它们。
在Exchange中检查您的传输规则,并确保在进入O365之前,他们没有修改邮件,如果他们禁用他们,再次testing,以确保这些不是你的问题。
最后(也可能是第一次)检查您的联合configuration是否正确。 如果这不是这可能是为什么你的邮件没有正确处理。 这是重新运行混合向导的地方,你也可以帮助你。
不是这里的专家,从我和Exchange玩起来已经很长时间了,但我会尽我所能回答。
让我们来讨论一下这个devise吧,为什么不把所有的stream量路由到EOP,然后再到你的本地Exchange服务器呢? 您在这里失去了一个很好的function,它肯定会让您更容易控制来自单个位置的垃圾邮件(假设您本地的Exchange也具有反垃圾邮件filter)。
现在让我们转到垃圾邮件问题: