2010-06-01 66 views
3

关于an earlier question我正在寻找一种替代方式将订单从我的网站发送到我的公司处理订单的部门。PHP邮件的替代方案

目前我使用PHP邮件(),但通常这会产生问题。大的延迟发生。是否有替代PHP邮件()命令我的公司?所以我宁愿不去投票调查网站。

+0

你知道为什么会有延迟吗? SMTP/Sendmail配置? DNS路由?等等。 – allnightgrocery 2010-06-01 13:05:45

回答

5

mail()适用于简单的东西,但通常您需要一个更强大的库来解决PHP中的邮件问题。

我个人的选择是Swift Mailer

而且从阅读您的其他问题,这会是有益的

  • 您的应用程序写入订单电子邮件数据库,在队列中。
  • 你有一个Cron运行,每10分钟发送30封电子邮件。
  • 然后它删除最后发送的30个,准备好在10分钟内再次处理。

好处是,当你有一个电子邮件队列发送出去,他们可以批量处理,并且如果邮件发生故障,你也可以在数据库中有一个副本。查询数据库会更容易,然后追踪未送达的邮件(或迟交)。

+0

他在他之前的问题中表示他反对将订单存储在数据库中。 – amphetamachine 2010-06-01 13:06:50

-1

使用SMTP发送订单具有固有的不安全性。更不用说由使用邮件服务器引起的所有路由,垃圾邮件检查等引起的延迟。您确定需要通过电子邮件发送订单吗?服务器到服务器的HTTP传输(可能是基于XML的)传输线更不是更好的选择吗?

您可以在处理部门中使用第二台服务器,该服务器将通过受保护的(防火墙)连接从您的Web服务器接收订单,该连接将处理订单,在此情况下,可使订单处理部门谁阅读和处理订单。

1

目前我使用PHP邮件(),但通常这会产生问题。

我会打赌你很多钱,它不会经常给出问题。

我有从来没有遇到PHP邮件功能的问题。我看到了邮件的错误php.ini设置的问题,以及在离开PHP后之后处理邮件的程序出现了一系列问题。您对“频繁”这个词的使用意味着它在某些时候会起作用,因此,在没有经常更新php.ini的情况下,这些问题都出现在您的邮件处理基础架构上。

事实上 - 我建议你去看看PHP的错误列表 - 会有很多的有关获取从脚本邮寄到用户收件箱的问题报告 - 但他们没有就会因的失败PHP代码。

因此,如果问题在别处,使用替换SMTP客户端将有没有任何效果(除非您将其配置为绕过错误的MTA)。

了解电子邮件的工作原理以及失败的原因远不是微不足道的。当你加入这个组合时,有些人为了防止垃圾邮件而去了(通常没有记录),它开始变得非常复杂。即使你已经给出了你的基础设施和配置的确切细节,甚至很难猜测为什么以及如何失败。

当然,您需要先查看电子邮件日志和标题,然后检查MTA和MUA配置以开始解决问题。

C.

+0

你是对的我有问题在我的服务器中设置邮件实际发送出去。任何建议? – Si8 2013-10-04 02:31:03

+0

您似乎目前正在使用sendmail - 这是一款出色的工具,通常非常可靠 - 但它需要很多技能来配置和管理。由于它非常可靠,并且在配置时具有非常高的吞吐量,并且至少在某些时间工作,所以我不建议将它切换为其他方式。首先收集已发送的电子邮件中的标题,并监控mailq的大小以确定发生瓶颈的位置 - 您的web服务器和收件人之间似乎有多个*跳跃。 – symcbean 2013-10-06 16:15:49

+0

我结束了使用PHP梅勒。需要非常小的配置! – Si8 2013-10-06 16:25:54