Php 如何在web应用程序中接收和处理电子邮件
我已经为我的PHP web应用程序设置了电子邮件id。用户将向此id发送电子邮件 我想在应用程序中处理这些电子邮件。我该怎么做呢Php 如何在web应用程序中接收和处理电子邮件,php,email,Php,Email,我已经为我的PHP web应用程序设置了电子邮件id。用户将向此id发送电子邮件 我想在应用程序中处理这些电子邮件。我该怎么做呢 提前感谢。您需要在Php中实现电子邮件客户端。这可能是一个客户 这段代码将查询包含您的电子邮件的POP服务器,下载它,然后您可以根据需要解析它 在谷歌上快速搜索“POP客户端php”,发现了大量不同的选项。很难说是否真的有“一个真正的PHP POP库”,否则我会把它包括在这里。如果您使用的是一个预先存在的框架,您可能希望查看它的POP支持级别,否则请查看上面的goog
提前感谢。您需要在Php中实现电子邮件客户端。这可能是一个客户 这段代码将查询包含您的电子邮件的POP服务器,下载它,然后您可以根据需要解析它
在谷歌上快速搜索“POP客户端php”,发现了大量不同的选项。很难说是否真的有“一个真正的PHP POP库”,否则我会把它包括在这里。如果您使用的是一个预先存在的框架,您可能希望查看它的POP支持级别,否则请查看上面的google结果并选择。或者它可能是最简单的(也是最有教育意义的:)。我建议使用Zend Framework的组件。如果您不想通过POP或IMAP到达另一台服务器来下拉电子邮件,您可以在您设置的某个SMTP服务器(可能是同一台php服务器)上的电子邮件接收过程中添加“钩子”。然后让目标电子邮件由该服务器处理 这是一个postfix的例子,但是sendmail也可以做类似的事情。
我最近参与了一个项目,该项目要求解析来自gmail的电子邮件,并根据电子邮件内容使用特定值更新数据库。我使用该库连接到邮件服务器并解析电子邮件 我采取的策略是用“未处理”标签过滤所有感兴趣的邮件。每隔15分钟通过crontab运行PHP脚本。该脚本将连接到邮件服务器,打开IMAP未处理文件夹并解析每封电子邮件。将感兴趣的值插入数据库后,脚本将文件移动到另一个IMAP文件夹“Processed”
我还发现,对于这种处理方式,IMAP优于POP 如果系统上安装了procmail,请使用它。将这些行放在接收电子邮件的用户的主目录中的.procmailrc文件中
:0
| /path/to/your/script.php
或者也可以使用.forward文件,其中包含
"|/path/to/your/script.php"
Procmail的优点是,如果应用程序需要,它允许您处理更复杂的过滤
您的script.php文件将从stdin读取电子邮件的标题和正文。签出。它不需要任何非标准的扩展(如imap),并且已经用各种服务器、附件、多部分消息、SSL等进行了测试。有一个很棒的库:试试这个:最近我想能够立即收到我正在制作的东西的电子邮件,所以我做了一些研究(实际上,我也是在这里看到这个问题的)最后我发现Google App Engine非常有用。它有一个api,你可以用它来接收和处理发送到
\uuuuuuu@yourapp.appspotmail.com
的电子邮件。我知道它似乎没有什么帮助,因为你可能不想在App Engine上使用你的应用程序,你想在yourdomain.tld上接收电子邮件,但只要稍加设置,你就可以了得到你想要的
我的基本设置如下:
- 用户向用户发送电子邮件_id@mydomain.tld(实际不存在的电子邮件地址)
- mydomain.tld有一个catchall电子邮件地址,可转发到inbox@GAEapp.appspotmail.com
- GAEapp(应用程序引擎上的一个小应用程序)接收电子邮件,处理它,并向mydomain.tld发送一个包含相关内容的post请求
\u_@emailization.com
这样的收件人,并提供一个可以发布到的URL。发送到该地址的任何内容都会被发布到你的URL。你可以在你的域上制作一个catchall,转发给该电子邮件收件人,然后你就可以发布不要通过catchall发送电子邮件
或者你可以看到一个我做的,你可以设置自己做同样的事情
希望这对其他人有所帮助!有许多托管解决方案可以为您的域接收电子邮件,然后在您的网站上发布一个脚本。其中大多数解决方案将为您处理邮件解析(将附件、“收件人”“发件人”和其他地址分开,等等) 您只需创建一个脚本来接收表单POST,并根据需要对其执行任何操作
您还可以查看Mandrill(由MailChimp编写)、SendGrid和PostMarkApp。这里有一个很好的教程: 其中包括如何将电子邮件直接转发到脚本,脚本通过stdin(fopen、fread等)读取。教程代码甚至可以为您完成标题/正文的基本解析。建议的托管解决方案效果良好 如果您正在寻找自托管邮件,您可以查看该模块,该模块允许您接收电子邮件,解析电子邮件并将其发布到您选择的webhook。它还检查dkim和spf,计算spamassassin分数并确定邮件语言
我不知道它是否适合您的需要,因为它是在node.js中编写的,但是您拥有的选项越多越好。(免责声明:我是Mailin的维护者)@Shoan我知道这个答案很旧……但是你介意帮我发一些代码吗?@pattyd很遗憾,我已经没有这个代码了。但是用我在大纲中的答案来做应该比较简单。Zeta组件的文档会告诉你如何阅读电子邮件。@pattyd这不是你在StackOverflow上要求的东西。The
Ask Question
按钮是…@Bojangles,我只是在检查…即使我使用了神秘的“Ask Question”按钮,你也可能会将其标记为重复按钮!@pattyd可能不会,但前提是