当我尝试通过互联网使用 PHP 向域电子邮件地址发送电子邮件时,我在 Windows Server 2003 计算机上设置 SMTP 服务器时遇到了一些问题。
常见信息:
- 计算机装有 Windows Server 2003 Server
- 域上的机器 (mydomain.com)
- 计算机不是域控制器
- 机器通过互联网访问域控制器(WAN 与互联网提供商在机器网关上设置的企业 VPN 链接 - adsl 调制解调器/路由器)
- 电子邮件地址使用相同的后缀 (mydomain.com)
- 无权访问域控制器配置
第一种情况
- TCP/IP DNS:第一个 192.168.200.xxx 第二个 8.8.8.8
- 直接访问域控制器即可正常运行
- 使用 localhost 发送 PHP 邮件到[电子邮件保护]不起作用,因为远程邮件服务器拒绝来自内部流量的电子邮件(显然!?!)
第二种情况
- TCP/IP DNS:第一个 8.8.8.8 第二个 192.168.200.xxx(切换)
- 直接访问域控制器不是功能正常,仅本地帐户可用
- 使用 localhost 发送 PHP 邮件到[电子邮件保护] 做工作,因为远程邮件服务器是通过其互联网/外部地址访问的。
因此,我需要的是(1)访问域控制器和(2)使用 localhost 向[电子邮件保护]帳戶工作。
有什么建议吗?提前致谢
答案1
我使用 hMailserver 将 SMTP 流量路由到我想要的电子邮件服务器,并禁用 IIS SMTP 服务器。
无论如何,感谢您的意见
答案2
由于 192.168.200.xxx 处的 DNS 是本地的,因此它可能将主机名解析为本地 (192.168.200.xxx) IP 地址。8.8.8.8 处的 DNS 是外部的,因此它将主机名解析为其 FQDN。
最好的解决方案是让您的出站邮件服务器重写发件人的地址以使用 FQDN 而不是本地主机/网络名称。
答案3
我可能完全误解了您的意思,但我建议将 php.ini 中的 smtp 主机设置设置为您的 ISP smtp 服务器,如下所示;
; http://www.php.net/manual/en/mail.configuration.php#ini.smtp
SMTP = your-smtp-server.yourisp.com
然后,在场景 1) 中,php 将向外部发送电子邮件,并且不会被与 MX 记录同名的 AD 域混淆[电子邮件保护]