在CakePHP中接收/检索电子邮件

时间:2011-06-12 03:34:17

标签: cakephp swiftmailer

我正在为一个小型培训中心开发一个基本但高度定制的CRM,该培训中心能够存储学生记录并向他们发送电子邮件。我在CakePHP中使用this excellent tutorial之后的SwiftMailer来完成发送部分。

当然,学生有时会回复电子邮件,我想在我的CRM中检索它们并将它们与学生记录一起存储。

但是,我找不到这样做的单一参考。我尝试了以下Google搜索:“接收电子邮件cakephp”,“检索电子邮件cakephp”甚至“电子邮件客户端cakephp”,但所有这些查询都会提供与发送邮件相关的结果,而不是接收它 - 非常令人沮丧!

最后,我将搜索范围扩展到非蛋糕解决方案,并发现有人推荐了一个名为ezComponents的库。它似乎没有任何活跃的开发大约一年,但它包括一个电子邮件接收类,这正是我想要的。不幸的是,我不知道如何将这个添加到CakePHP中,而我在整个网络上找到的唯一post并没有详细说明。这肯定不是在CakePHP上使用ezComponents的分步教程,就像我上面提到的SwiftMailer教程一样。

我还在Google Code上找到了一个名为php-imap的课程,看起来它可以完成这项工作但是,我还没有丝毫的线索如何让它像SwiftMailer一样快乐地工作。

我意识到我可能必须自己学习如何打包在Cake中使用的类,但是我首先要问的是这个问题已经存在,我已经有了一个对这个问题已经采用了Cake友好解决方案的机会。没意识到: - )

约瑟夫

3 个答案:

答案 0 :(得分:7)

感谢大家的回答,但我一直在做更多的搜索,看起来解决方案实际上非常简单。

基本上,在插件的帮助下,我可以将databases.php中的邮件服务器设置为数据源,然后编写模型和控制器以与之交互。

以下是我发现的示例: https://github.com/kvz/cakephp-emails-plugin

修改:不推荐使用repo,现在https://github.com/kvz/deprecated/tree/cakephp-emails-plugin可以使用

答案 1 :(得分:2)

您需要将电子邮件传递给PHP并使用stdin://来阅读电子邮件的内容并将电子邮件添加到您的数据库中。

我用cake完成了这个,最简单的方法是创建一个Cake控制台应用程序来处理解析。使用cpanel的帐户级别过滤来生成管道也非常简单。

http://forums.cpanel.net/f5/piping-mail-php-scripts-howto-checklist-50985.html

http://www.evolt.org/incoming_mail_and_php

答案 2 :(得分:0)

听起来你想把SwiftMailer包含为Cake插件,amirite?

http://book.cakephp.org/view/1111/Plugins

- 如果你想自己打包它。否则,粗略地搜索面包店会产生这样的结果:

http://bakery.cakephp.org/articles/sky_l3ppard/2009/11/07/updated-swiftmailer-4-xx-component-with-attachments-and-plugins

希望它至少会让你指向正确的方向。 HTH。 :)