我正在努力了解我将如何绕过这个最新的障碍。需要发生什么: PHP script sends email to our Exchange Server
....
听起来很简单吧?好吧,问题是上面有 PHP 脚本的 LAMP 服务器位于我们的办公大楼,而我们的 Web 服务器托管在专门的托管公司IP 65.xxx.xxx.xxx
。当我们从基于 office 的 PHP 脚本将电子邮件发送到我们的交换服务器(由 Office 365 托管)时IP 173.xxx.xxx.xxx
,交换服务器 ping-back 电子邮件来自的域,结果发现域解析到的 IP 是我们的 Web 服务器 IP 65.xxx.xxx.xxx
... 而不是办公室173.xxx.xxx.xxx
(电子邮件的来源)它比较,它们不匹配.. 并且垃圾进入了电子邮件。
我可以使用什么方法将电子邮件与 IP 一起发送出去,65.xxx.xxx.xxx
以便交换服务器不会阻止它?我在想可能有 PHP SSH 进入网络服务器并使用它的(网络服务器的)sendmail?或者我是否删除 office maching 上的 sendmail 并使用 postfix to TLS 进入我们的交换帐户?我从来没有处理过这个。任何帮助、建议、网络文章——任何指向我可行解决方案的东西都将不胜感激!
Office 365 有一个功能,它可以充当内部办公室邮件服务器的中继,但它仅适用于企业计划(8 美元/用户及以上)。
假设您不想花太多钱,最好的办法是创建一个用户帐户(4 美元)并让您的本地邮件服务器对其进行身份验证。Sendmail 和 postfix 都能够向远程 SMTP 智能主机进行身份验证。
好的,所以你是说你的邮件交换服务器正在进行反向 DNS 检查并拒绝电子邮件,因为失败了,对吧?
我最近遇到了一个问题,我通过 PHP 和 sendmail 发送电子邮件,并且由于反向 DNS 故障,电子邮件也进入了垃圾邮件箱。对我来说,解决方案是设置一个 SPF(发件人策略框架)记录,基本上告诉接收邮件服务器“嘿,这个 IP 实际上被授权执行此操作!”
我绝不是专家,但您可能想朝那个方向看。邮件服务器还可能会检查一些其他的东西来验证电子邮件的发件人,但我对这些知之甚少,因为 SPF 方法对我在 gmail 和 yahoo 上都有效,而这就是我所需要的。
如果事实证明我完全错了,我希望有人能告诉我!