将邮件传送到PHP时提取附件
我知道通过我的cPanel主机,我可以通过管道将电子邮件收件箱发送到脚本,但我想做的是:将邮件传送到PHP时提取附件,php,email,piping,Php,Email,Piping,我知道通过我的cPanel主机,我可以通过管道将电子邮件收件箱发送到脚本,但我想做的是: 寄往hi@hi.com 管道到mail.php php读取主题和.txt附件 主题和.txt附件的内容存储在数据库中 有没有一种方法可以直接使用PHP实现这一点?您可能需要执行以下操作: 编写一个可在CLI上执行的PHP脚本(通过在脚本顶部添加指向PHP二进制文件的#!声明,然后设置其可执行权限) 获取用于读取原始电子邮件的脚本php://stdin (文件获取内容最简单) 使用PEAR::mail::Mi
有没有一种方法可以直接使用PHP实现这一点?您可能需要执行以下操作:
存在一个名为的PHP库,它本身取决于。安装了这些软件后,实现所需功能的代码非常简单:
<?php
require_once 'MimeMailParser.class.php';
$parser = new MimeMailParser();
$parser->setStream(STDIN);
$subject = $parser->getHeader('subject');
$attachment_content = false;
foreach ($parser->getAttachments() as $attachment) {
$extension = pathinfo($attachment->filename, PATHINFO_EXTENSION);
if ($extension == "txt") {
$attachment_content = $attachment->content;
break;
}
}
// adapt to what ever database you are using
$sth = $mysqli->prepare("INSERT INTO mails (subject, attachment) VALUES (:subject, :attachment)");
$sth->bindParam(':subject', $subject, PDO::PARAM_STR);
$sth->bindParam(':attachment', $attachment_content, PDO::PARAM_STR);
$sth->execute();
谢谢!我不熟悉可执行文件,所以需要研究它,你知道对我有用的链接吗:)保存和存储pdf文件需要什么样的更改?是否需要处理任何类型的加密或编码,或者只是将txt更改为pdf?我不建议将pdf文件的内容存储在数据库字段中。最好将它存储到文件系统,只存储路径。这就是我的意思,我想将附件保存为文件并存储位置。然而,我不确定如何处理它,因为我读过的其他“教程”或答案涉及某种base64解码。