PHP:从 POP3 或 IMAP 下载传入的电子邮件,对其进行解析,并在服务器上将其标记为已读/删除

Posted

技术标签:

【中文标题】PHP:从 POP3 或 IMAP 下载传入的电子邮件,对其进行解析,并在服务器上将其标记为已读/删除【英文标题】:PHP: Download incoming email from POP3 or IMAP, parse it, and mark it as read/delete on server 【发布时间】:2010-11-29 20:18:27 【问题描述】:

我正在尝试将收到的电子邮件添加到我的 Web 应用程序。它建立在 CodeIgniter 和 php 之上,据我所知,我还没有找到任何 CI 库来执行此操作。

我想做的是有一个控制器通过 POP3 或 IMAP 连接到我的邮箱,并检索邮件,解析它然后将其从服务器中删除。

从 postfix/etc 管道邮件在我的服务器设置上不起作用。

任何建议都会非常有帮助。

谢谢!

【问题讨论】:

【参考方案1】:

http://ca.php.net/imap

$mb = imap_open("host:port/imap","username", "password" );

$messageCount = imap_num_msg($mb);
for( $MID = 1; $MID <= $messageCount; $MID++ )

   $EmailHeaders = imap_headerinfo( $mb, $MID );
   $Body = imap_fetchbody( $mb, $MID, 1 );
   doSomething( $EmailHeaders, $Body );

【讨论】:

真的很有帮助,我实际上正在寻找这样的东西,几乎可以工作,但仍然无法获取/显示电子邮件的内容....【参考方案2】:

对于更独立的方法,您可以使用 Zend 框架 (https://docs.zendframework.com/zend-mail/read/) 构建第三方插件。我在 Codeigniter 中使用了他们的 ACL 模块,这是充分利用这两个框架的好方法。

这还允许您解析电子邮件和提取附件等。

【讨论】:

以上是关于PHP:从 POP3 或 IMAP 下载传入的电子邮件,对其进行解析,并在服务器上将其标记为已读/删除的主要内容,如果未能解决你的问题,请参考以下文章

什么是POP3SMTP和IMAP?

什么是POP3SMTP和IMAP?

什么是POP3SMTP和IMAP?

POP3SMTP和IMAP之间的区别和联系

POP3SMTP和IMAP之间的区别和联系

使用php-imap查询操作邮件收件箱