ImapEngine — це PHP пакет від Стіва Баумана, який надає простий API для управління поштовими скриньками без використання PHP IMAP розширення. Він пропонує зрозумілий API для роботи з поштовими скриньками і сумісний з версією PHP 8.1 та вищими:
use DirectoryTree\ImapEngine\Mailbox;
$mailbox = new Mailbox([
'port' => 993,
'username' => '...',
'password' => '...',
'encryption' => 'ssl',
'host' => 'imap.example.com',
]);
$inbox = $mailbox->folders()->inbox();
// Отримати всі UIDs повідомлень вхідних.
$messages = $inbox->messages()->get();
// Усі повідомлення за останні 7 днів із конкретною темою
$messages = $inbox->messages()
->since(now()->subDays(7))
->subject('Hello World')
->get();
// Отримати всі повідомлення вхідних зі зверстаним контентом.
$messages = $inbox->messages()
->withHeaders() // Дозволити отримання заголовків повідомлення.
->withFlags() // Дозволити отримання прапорців повідомлення.
->withBody() // Дозволити отримання тексту повідомлення (включаючи вкладення).
->get();
Після отримання повідомлень ви можете взаємодіяти з ними: дізнатися тему, відправника (from), вкладення та інше. Ви також можете помітити повідомлення як прочитане або перемістити його:
foreach ($message->attachments() as $attachment) {
// Отримати ім'я файлу вкладення.
$attachment->filename();
// Отримати тип вмісту вкладення.
$attachment->contentType();
// Отримати вміст вкладення.
$attachment->contents();
// Отримати розширення вкладення.
$extension = $attachment->extension();
// Зберегти вкладення у локальний файл.
$attachment->save("/path/to/save/attachment.$extension");
}
// Позначити повідомлення як прочитане.
$message->markSeen();
// Перемістити повідомлення до папки "Архів".
$message->move('Archive');
Перегляньте вихідний код ImapEngine на GitHub для інструкцій з установки та прикладів.
```