2011-03-11 77 views
3

我有一个网站,通过cloudmailin接收传入的电子邮件,将内容添加到数据库,然后将确认电子邮件发回给发送电子邮件的人。目前我正在使用php mail()函数发送回复,但似乎需要大约1.5分钟才能到达用户的收件箱。有没有办法让这个更瞬间?我现在在FatCow上主持应用程序,我确信它与他们的邮件服务器有关,但我并不十分了解它是如何工作的,我想知道是否必须更改主机以实现更快的交付时间或者如果我可以在不切换的情况下做任何事情。快速发送电子邮件

回答

5

mail()是一个黑匣子。你告诉PHP尝试发送邮件,但是主机已经配置了PHP来这么做。

这是很可能它只是在你的情况下调用sendmail。这也是很有可能该机器上的邮件队列不是世界上最快的。共享主机经常超载。

你应该做的第一件事就是询问你的主机有关邮件延迟。也许有些事情是错的,他们可以解决它。或者他们可能只是告诉你,一分半钟不是等待很长时间。

还有很多的其他选项,主要是为您提供SMTP服务的公司的形式。我不能推荐一个,但我可以建议你跳到你最喜欢的搜索引擎并寻找“smtp服务”。我最近开始使用Amazon Simple Email Service。这应该是快速和良好的维护,而且它确实是便宜。

所有这些选项都可能需要在您的一端进行一些配置更改。例如,您需要设置自定义DNS记录(对于DKIMSPF)以确保来自第三方提供商的邮件不会自动标记为垃圾邮件。

在PHP中使用SMTP非常简单。有很多邮件生成选项。我个人最喜欢的是SwiftMailer。它甚至有一个transport option for Amazon SES

当然,最后一个选项是抓住你自己的虚拟专用服务器或专用服务器,它可以让你根据需要配置外发邮件,代价是需要知道如何维护该服务器。


编辑:Obligatory link to relevant Coding Horror post

+0

我最终使用了sendgrid,它的工作速度比普通的mail()命令快得多。我也使用phpmailer,这使得它很容易设置smtp配置。 Amazon SES和swiftmailer也很好 – dvanderb 2011-04-20 19:22:48