如何在Web应用程序中接收电子邮件并对其进行处理

Niy*_*yaz 54 php email

我已经在我的PHP Web应用程序中设置了一个电子邮件ID.用户将向此ID发送电子邮件.

我想在应用程序中处理这些电子邮件.我该怎么做呢?

提前致谢.

Sho*_*oan 49

我最近参与了一个项目,该项目需要从gmail解析电子邮件,并根据电子邮件的内容使用某些值更新数据库.我使用ezcMail (现在)Zeta Components库连接到邮件服务器并解析电子邮件.

我采用的策略是使用"未处理"标签过滤所有有趣的传入邮件.每15分钟通过crontab运行PHP脚本.该脚本将连接到邮件服务器并打开IMAP未处理文件夹并解析每封电子邮件.将有趣的值插入数据库后,脚本将文件移动到另一个IMAP文件夹"Proccessed".

我还发现IMAP比POP更适合这种处理.

  • @Bojangles,我刚刚检查......即使我使用了神秘的"问题问题"按钮,你可能会将其标记为重复! (4认同)
  • @pattyd 可能不是,如果您的问题不仅仅是“请发布一些代码”而不是“这是我的尝试,我哪里出错了?” (2认同)

小智 15

最近我希望能够立即接收我正在制作的电子邮件,所以我做了一些研究(我实际上也在这里查看这个问题)并且我最终发现Google App Engine非常有帮助.它有一个api,您可以用来接收和处理发送到的电子邮件____@yourapp.appspotmail.com.我知道它似乎没有用,因为您可能不希望App Engine上的应用程序,并且您希望在yourdomain.tld接收电子邮件,但通过一些设置,您可以得到您想要的.

我的基本设置是这样的:

  • 用户向user_id@mydomain.tld发送电子邮件(实际不存在的电子邮件地址)
  • mydomain.tld有一个catchall电子邮件地址,转发到inbox@GAEapp.appspotmail.com
  • GAEapp(应用程序引擎上的一个小应用程序)接收电子邮件,处理它,并向mydomain.tld发送带有相关内容的帖子请求

所以基本上你可以制作一个小的GAE应用,就像抓住电子邮件一样.即使使用重定向,它也能正常运行,但是电子邮件会很好.

此外,我决定向我学习一些django,我制作了一个名为Emailization的免费应用程序,它基本上可以帮到你.您创建一个收件人,___@emailization.com并给POST一个URL.发送到该地址的任何内容都会发送到您的URL.您可以在您的域上进行转发,转发给该电子邮件收件人,您也可以通过电子邮件收到电子邮件!

或者你可以看到我制作的一个小型GAE应用程序,你可以自己设置同样的东西.

希望能帮到别人!


bmb*_*bmb 14

如果系统上安装了procmail,请使用它.将这些行放在接收电子邮件的用户的主目录中的.procmailrc文件中.

:0
| /path/to/your/script.php
Run Code Online (Sandbox Code Playgroud)

或者您也可以使用包含的.forward文件

"|/path/to/your/script.php"
Run Code Online (Sandbox Code Playgroud)

Procmail的优势在于,如果您的应用程序需要,它可以让您处理更复杂的过滤.

您的script.php文件将从stdin读取电子邮件的标题和正文.


Tou*_*Pal 7

查看fMailbox.它不需要任何非标准扩展(例如imap),并且已经过各种服务器,附件,多部分消息,SSL等测试.


far*_*zad 6

我建议使用Zend Framework的Zend_Mail组件.