PHP电子邮件客户端 - 克服缓慢的发送/接收

3
我开发了一个类似于manta.com的营销网站所用的CRM系统,内置有电子邮件客户端。基本上,它会将姓名和电子邮件地址与文件中的地址匹配,如果邮件来自客户,则会在邮件旁边加载他们的账户信息。
整个系统可以运作,但在某些情况下速度较慢。由于每个“区域”的管理都归不同的公司负责,因此软件要连接多个不同的邮件服务器,这些服务器的行为都各不相同。
在某些情况下(大多数是神州数码的服务器),发送邮件需要很长时间。即使分页,如果收件箱中有很多邮件(500+),加载时间也会很长。
我使用pear Mail :: Factory smtp发送邮件,并使用内置的php imap功能接收邮件。
我在考虑,对于出站消息,我将只存储邮件到数据库中,然后使用cron脚本发送它,这样他们就可以立即发送邮件并继续进行。
有没有人对通过IMAP和PHP处理大型收件箱有任何想法/概念?我无法控制邮件服务器本身,但完全控制CRM所在的服务器。
我不需要代码,只需要一些概念。该服务器使用Linux (ubuntu),apache,mysql,php,并可使用Zend。

1
你不能只使用本地SMTP服务器发送电子邮件吗?此外,500封电子邮件似乎并不像一个非常大的收件箱。但是,您是否每次都必须下载每个电子邮件的标题?如果是这样,您真的需要考虑缓存它。 - Mike
1
不,我无法使用本地SMTP。根据发送者的不同,它来自的域也不同。例如,纽约的某人可能是bobdole@newyorksales.com,而洛杉矶的某人可能是maryjane@californiasales.com由于不同的域,它需要从他们的邮件服务器发送,否则我将会面临SPF和其他电子邮件验证问题的麻烦。简单来说,这就像一个基于Web的Outlook,在那里他们输入他们的邮件服务器、用户名和密码,它就能连接他们的帐户到CRM。 - Developer Gee
从技术上讲,您可以通过插入适当的邮件头从任何域发送电子邮件。唯一的限制是,如果该域有一个不包括您服务器IP地址的SPF记录。 - Mike
抱歉,在我发布这条评论之前我没有意识到您已经对其进行了编辑。另一个选项是将邮件地址设置为noreply@yourhost.com,并将回复地址设置为bobdole@newyorksales.com - Mike
好的,我会查看imap_search函数。当它顺利运行时,我会更新帖子。 - Developer Gee
显示剩余2条评论
1个回答

0

看起来是将邮件缓存并使用 imap_fetch_overview 函数,该函数省略了电子邮件内容的组合。这似乎消除了任何滞后问题。我还可以使用它对结果进行分页,因此一次只加载少量(25-50)。感谢您的帮助。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接