Там существует библиотека PHP, называется php-mime-mail-parser
, которая сама зависит от PECL mailparse library. Когда вы те, что установлены, код для достижения того, что вы хотите, довольно прямо вперед:
<?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();
Можно передать почту в сценарий, как он читает из STDIN
. Вы также можете прочитать из файла, изменив setStream
на setPath
. См. documentation of the library.
Спасибо! Я новичок в исполняемых файлах, поэтому вам нужно будет изучить его, знаете ли вы какие-либо ссылки, которые могут быть полезны мне :) – tarnfeld