使用 PHP 将入站电子邮件附件保存到磁盘
Posted
技术标签:
【中文标题】使用 PHP 将入站电子邮件附件保存到磁盘【英文标题】:Using PHP to save an inbound e-mail attachments to disk 【发布时间】:2011-07-02 00:05:20 【问题描述】:我正在寻找编写一个我也可以通过管道发送电子邮件的 php 脚本。然后,该脚本会提取所有附件并将它们保存到服务器上的文件夹中,从而丢弃邮件。
我找到了许多将电子邮件作为可以拆分的字符串读取的示例:
$fd = fopen("php://stdin", "r");
$email = "";
while (!feof($fd))
$email .= fread($fd, 1024);
fclose($fd);
但是,这些都不能处理 mime 附件的提取。我看过PHP Manual,但没有看到如何将它们组合在一起。
有没有一种简单的方法可以做到这一点,甚至可以使用管道而不是弹出帐户?
【问题讨论】:
看***.com/questions/162576/… 我看到了这个,但是它使用的是 pop3 帐户而不是管道电子邮件 【参考方案1】:甚至可以使用管道而不是弹出帐户?
这与您如何处理消息本身的结构无关。要回答如何同步读取消息而不是轮询的问题,我们需要知道这是在什么操作系统上以及如何配置 MDA(提示:如果是 Unix/Linux/POSIX,请使用 procmail)。
关于您如何处理电子邮件正文的描述远远超出了此处的答案 - 但您可以在互联网上找到许多现成的解决方案。例如this one
【讨论】:
根据我的研究,内置的 php 对象将从 pop3 或 imap 帐户中检索一条消息,该消息已被解析,我只有一个字符串,因此我的问题。我不确定操作系统和 MDA 是如何相关的,因为管道消息(在这种情况下使用 cpannel)已经作为流传递到脚本而无需轮询。但是解析器的链接可能有效 - 谢谢以上是关于使用 PHP 将入站电子邮件附件保存到磁盘的主要内容,如果未能解决你的问题,请参考以下文章
将 Mandrill JSON webhook 入站电子邮件附件映射到 C# 类