Пример простого скрипта на 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 - похоже библиотека умеет парсировать писсьма, но по примерам не понятно, умеет ли она их получать с сервера.