Пример простого скрипта на php, который умеет проверять почту и сохранять вложения из писем на диск.
Получение писем на php
12.04.2019
Работать будем используя библиотеку ddeboer/imap
Установка и настройка сервера:
Нужно установить imap расширения для php
yum -y install php71w-imap
и включить его в php.ini, в секцию ; Dynamic Extensions ; добавляем:
extension=imap.so
Сам скрипт:
<? error_reporting(E_ALL); ini_set('display_errors', 'On'); require_once('vendor/autoload.php'); use Ddeboer\Imap\Server; $server = new Server('imap.yandex.com'); $connection = $server->authenticate('LOGIN', 'PASS'); $mailbox = $connection->getMailbox('INBOX'); $messages = $mailbox->getMessages(); foreach ($messages as $message) { echo $message->getSubject(). '<br />'; /* $message->getSubject(); $message->getFrom(); // Message\EmailAddress $message->getTo(); // array of Message\EmailAddress $message->getDate(); // DateTimeImmutable $message->isAnswered(); $message->isDeleted(); $message->isDraft(); $message->isSeen(); */ $attachments = $message->getAttachments(); foreach ($attachments as $attachment) { file_put_contents( __DIR__.'/tmp/' . $attachment->getFilename(), $attachment->getDecodedContent() ); } }
Еще по теме:
В процессе нашел еще пару интересных библиотек:
barbushin/php-imap - похожая по функционалу, но слишком мало документации.
php-mime-mail-parser - похоже библиотека умеет парсировать писсьма, но по примерам не понятно, умеет ли она их получать с сервера.