Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux上使用PHP发送电子邮件时出现问题_Php_Sendmail - Fatal编程技术网

Linux上使用PHP发送电子邮件时出现问题

Linux上使用PHP发送电子邮件时出现问题,php,sendmail,Php,Sendmail,我创建了一个脚本,用于在客户下订单时向他们发送订单确认电子邮件。这是一个简单的PHP邮件脚本。这也是在共享linux主机上完成的 我的问题是,脚本将被接收10次,然后它将停止接收任何电子邮件帐户很长一段时间,然后突然他们将开始再次收到 我已经就这个问题联系了我的主持人,他们告诉了我一些我认为由于无知而错误的事情。首先,这些电子邮件可能被电子邮件提供商屏蔽了。如果真是这样的话,我无法想象10个邮件会在3个不同的电子邮件服务器上通过aol、gmail、hotmail,然后突然停止。他们还说他们的电子

我创建了一个脚本,用于在客户下订单时向他们发送订单确认电子邮件。这是一个简单的PHP邮件脚本。这也是在共享linux主机上完成的

我的问题是,脚本将被接收10次,然后它将停止接收任何电子邮件帐户很长一段时间,然后突然他们将开始再次收到

我已经就这个问题联系了我的主持人,他们告诉了我一些我认为由于无知而错误的事情。首先,这些电子邮件可能被电子邮件提供商屏蔽了。如果真是这样的话,我无法想象10个邮件会在3个不同的电子邮件服务器上通过aol、gmail、hotmail,然后突然停止。他们还说他们的电子邮件是成批发送的,我认为这不适用于客户脚本。如果是这样的话,当我一半时间运行脚本时,它们不会立即被接收。此外,在这些干涸的喷口中,当任何主机都没有收到电子邮件时,这些电子邮件永远不会进来。第三,他们告诉我使用他们的webformmailer.php,这将使用他们的批量电子邮件系统。问题是,他们的webformmailer只允许我将电子邮件发送到一个预定的电子邮件,因为我必须在控制面板中设置它


所以我有几个问题:这个问题有多少与我的主机、脚本和电子邮件提供商有关?有哪些修复方法可以使电子邮件更可靠?我一直在尝试使用一些电子邮件库,如swiftmailer,但它们似乎并没有改善这种情况。

听起来您的主机提供商设置了每分钟/小时的最大电子邮件数或其他。它看起来好像被提供商服务器阻止了


因此,解决方案是只使用其他smtp服务器,而不是邮件默认服务器。

如果您在共享主机上,请不要使用邮件,它将永远不会以您想要的方式工作,原因如下:

主机通常会限制您可以发送的邮件数量,这可能对与您共享服务器的每个人都是全局性的。 更大的电子邮件提供商可能已经看到了来自您现在使用的IP的垃圾邮件,并且可能会限制您的速率。 大型电子邮件提供商也可能只是将您的IP列入黑名单,因此一些电子邮件甚至永远不会到达。 如果您有访问权限,请检查您的web服务器错误日志,mail将在那里记录所有错误响应,以便您可以查看您是否从发送邮件的主机获得了临时延迟


我的建议是使用SMTP连接到您可以发送邮件的电子邮件主机或其他外部电子邮件服务。

我的主机向我发誓,他们没有限制阻止它,我认为这是实际发生的事情。如果电子邮件提供商阻止了它,为什么他们会在3个电子邮件提供商上都表现得非常好呢?如果他们曾经打过一次垃圾邮件,我必须制定一个规则允许他们,然后突然在3个提供商上都停了半个小时左右?另外,在php中如何通过SMTP发送邮件?如果收件人的提供商在默认情况下发送垃圾邮件,则可能会通过更具侵入性的垃圾邮件过滤器捕获。有几个库,试试看。我一直在试用SwiftMailer,但我的理解是它不能在linux上使用sendmail执行SMTP,这是错误的吗?你能为我指出正确的方向吗?对于sendmail,不,你必须指定你自己的外部SMTP服务器,比如谷歌或其他电子邮件服务来发送邮件。但是,我如何通过Linux上的SwiftMailer做到这一点呢?正如我在对SamT的评论中所说,我的提供商发誓他们不会限制它,但我不相信他们。如何在php中通过SMTP发送电子邮件?如果电子邮件服务器在短时间内收到大量电子邮件/如果用户将您的电子邮件标记为垃圾邮件,则可以免费将您的电子邮件标记为垃圾邮件spam@user3791372我明白,,但我特别将它们标记为在3个不同的提供商上受信任,它们都接收得非常好,然后在完全相同的时间停止接收它们,并在完全相同的时间再次开始接收它们,这让我相信是我的主机阻止了它们。