Інтеграція IMAP у ваш PHP-додаток

Перекладено ШІ
Оригінал: Laravel News
Оновлено: 11 лютого, 2025
Використання бібліотеки ImapEngine дозволяє легко управляти поштовими скриньками без необхідності в розширенні PHP IMAP. Досліджте можливості цього пакету, щоб дізнатися, як просто взаємодіяти з електронною поштою, зберігаючи час та зусилля!
```html

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 для інструкцій з установки та прикладів.

```