0

我选择了这个脚本,因为它有一个验证码和文件上传/附件。 http://www.html-form-guide.com/contact-form/php-contact-form-tutorial.html/comment-page-2#comments

我知道它较旧,并且脚本编写者在他们的网站上不支持它。

该表格位于 HostGator 的网址(当然是假的,仅使用它)“abcinc.com”。公司/网站所有者将他们的电子邮件放在 Exchange Server 2013 上,并使用“abc.com”作为他们的邮件。

表单创建的电子邮件 - 我在我的 Google/Gmail 帐户中收到它。我已经在这个服务器上使用了这个脚本,其他六个人(不同的网站组织)可以很好地接收到它们(使用 Google/Gmail、Hostgator 邮件)。

此客户端无法在“abc.com”的 Exchange Server (2013) 上接收这些电子邮件(是的,我在表单中的电子邮件地址正确)。

我只是想学习一些东西。这就是我在这里的原因。我不是 php 程序员,我不是 cPanel、Exchange Server 或任何类型的邮件/服务器半神。我所知道的是,我选择了一个脚本并对其进行了修改,将其托管在 HostGator 上,并相信当使用该表单时,HostGator 将邮件发送给了表单中的电子邮件地址。

Exchange 技术支持人员给我写了这个:

我需要知道您用于发送电子邮件的 SMTP 服务,以及您是否可以使用来自 ABC.com 的真实电子邮件地址从表单发送电子邮件。

请查看下面的文章,并尝试尽可能地镜像设置。此外,如果可能,请我们提供来自 abcinc.com 的实际电子邮件地址以发送电子邮件。我可以为您创建一个新的,或者您可以根据需要使用现有的。在您进行这些更改后或如果您有任何疑问,请与我联系,以便我们进行最终测试。

这是一个 KB,其中包含通常用于 Web 应用程序和其他设备的所有设置,以便能够使用我们的服务器进行发送。
如果有 Web 应用程序正在执行发送部分,请查看是否有任何可用日志显示如何配置您的打印机、扫描仪、复印机、Web 脚本或 SMTP 应用程序以使用 Exchange 帐户 http://hosting.intermedia。 net/support/kb/viewKBArticle.asp?id=2167
以下是您帐户的具体设置。注意:这是一个 Exchange 2013 服务器。

(我这里没有包括设置)

因此,在尝试通读之后,我的大脑爆炸了。当我恢复时,我通过 HostGator 支持登录并询问他们......我不知道我想问他们什么。

他们告诉我给他们我的 cPanel IP。

然后我问 Exchange Server 的人是否可以给我一个他们知道有效的脚本。是啊,我做了。:-\

所以我的问题是 - 是什么阻止了此 Exchange Server 接收这些电子邮件?

主要是为了让我比 10 分钟前受过更多的教育。

~凯耶

PS /已编辑

我回来补充,我只是尝试了另一种(基本)表格,他们收到了。

从没有到达 Exchange Server 的表单中,这是标题信息:

To: jill@abc.com
Subject: Contact form submission from Kaye
X-PHP-Script: www.abcinc.com/estimates.php for 76.3.118.189
Date: Fri, 13 Sep 2013 15:37:30 -0500
From: Kaye <nobody@www.abc.com>
Reply-To: kaye@mydomain.com
Message-ID: <be82ada010a752b86440e86e5c24ca0a@www.abcinc.com>
X-Priority: 3
X-Mailer: PHPMailer (phpmailer.sourceforge.net) [version 2.0.4]
MIME-Version: 1.0
Content-Type: multipart/alternative;

在有效的表单中,它使用用户输入表单的实际电子邮件作为 FROM 电子邮件地址 - 而不是服务器。这可能是 Exchange Server 遇到的问题吗?

function GetFromAddress()
{
    if(!empty($this->from_address))
    {
        return $this->from_address;
    }

    $host = $_SERVER['SERVER_NAME'];

    $from ="nobody@$host";
    return $from;
}
4

1 回答 1

2

大多数托管 Exchange 提供程序都包含过滤器,这些过滤器将检查与发件人地址关联的域的 SPF 记录(或至少 MX 记录)。由于 www.[your-domain].com 很可能既没有 SPF 也没有 MX 记录(因为“www.”),托管 Exchange 提供商的垃圾邮件阻止程序将邮件标记为垃圾邮件,因为它无法验证消息来自的 IP 地址实际上合法地与 www.[your-domain].com 相关联——或者,或者,或者(可能更有可能),www.[your-domain].com 没有 MX 或 SPF 记录与它相关联,因此服务器假定该消息必须是垃圾邮件(因为为什么没有为电子邮件配置的域名会发送电子邮件?)。[your-domain].com 可能有这些记录,但这并不一定涵盖“www”。

我以前以自己的个人经验处理过这个问题,发现 Google Apps 会处理各种托管 Exchange 提供商不会处理的消息。一些托管的 Exchange 提供商甚至不允许您查看被阻止的内容(例如 GoDaddy),因此很难进行故障排除。

现在,在您编辑的帖子中,您提到脚本现在“从”用户输入的地址发送,这有帮助。您认为这有所帮助是正确的。即使发送 IP 地址与发件人域名不匹配,接收服务器也可能有一个策略来接受没有特定原因的邮件(例如,黑名单条目或完全没有域名的 MX/SPF 记录) ,即使 IP 与域名不匹配。

这些标题...</p>

From: Kaye <nobody@www.abc.com>
Reply-To: kaye@mydomain.com

…有缺陷,因为接收服务器主要关注“发件人”地址。回复地址虽然可能是有效的,但不会增加邮件的可信度,如果“发件人”地址无效或被列入黑名单,邮件服务器将不会花时间查看它。

这个标题…</p>

Message-ID: <be82ada010a752b86440e86e5c24ca0a@www.abcinc.com>

......无论哪种方式都不会有所作为,尽管有“www”。在里面。Message-ID 只需要唯一,其他都不重要。

于 2013-09-14T03:29:19.913 回答