【问题标题】:Capture and Manage Email Data with PHP使用 PHP 捕获和管理电子邮件数据
【发布时间】:2011-08-11 15:33:38
【问题描述】:

我正在寻找一种使用 PHP 来捕获和管理电子邮件数据的方法。基本上,我想做的是捕获电子邮件中的所有数据,然后根据我的规范操作这些数据。

例如,假设我向 myemail@myproject.com 发送了一封包含 .zip 文件附件的电子邮件,我希望能够:

  1. 获取附件并将​​其放在我网站上的特定文件夹中
  2. 获取邮件的文本内容
  3. 获取电子邮件的主题
  4. 获取发件人的信息,即电子邮件地址

任何人都知道如何使用 PHP 有效地完成这项工作。顺便说一句,我正在使用 LAMP。

谢谢。

【问题讨论】:

  • 除了 Michael 的回答之外,我还为 PEAR 的 Mail_mimeDecode 创建了一个包装类,我希望它可以帮助sudocode.net/sources/includes/class-email-php
  • 非常感谢。这肯定会派上用场。你能给我一些关于如何在 Linux,特别是 Ubuntu 中设置 SendMail 管道的指示吗?

标签: php email


【解决方案1】:

以 PEAR Mail_mimeDecode 开头。您想做的事情雄心勃勃,但可以做到。

基本上你要做的是:

指示您的 MTA 将邮件从一个地址传送到一个管道到您的 PHP 脚本中。 Postfix 和 Sendmail 可以使用别名来处理这个问题:

myemail: "|/path/to/your/parsingscript.php"
  • 解析 MIME 电子邮件的各个部分
  • 从 base64(或其他编码)解码后定位和存储附件
  • 解析标题。

您的 PHP 脚本可能会从 STDIN 读取电子邮件消息,然后将字符串传递给 mimeDecode,这会创建一个包含所有 MIME 部分的对象。

假设你的消息是received into $str from STDIN,这样你就可以开始了:

$mime = Mail_mimeDecode::decode(array('include_bodies'=>TRUE, 'decode_headers'=>TRUE, 'decode_bodies'=>TRUE, 'input'=>$str));

// get the recipient To address:
$to = $mime->headers['to'];

【讨论】:

  • 谢谢。不过看起来有点复杂。我很擅长 PHP,但我是 Linux 的新手,尤其是服务器管理。知道在哪里可以获得更多信息,如何在 Ubuntu 上为 sendmail 设置管道?使用 IMAP 功能是否更可行?
猜你喜欢
  • 2013-11-27
  • 2014-01-25
  • 2014-08-02
  • 2018-06-19
  • 2018-01-12
  • 2017-09-18
  • 2011-12-14
  • 1970-01-01
相关资源
最近更新 更多