ImapEngine — це просте API для управління поштовими скриньками без використання розширень PHP.

2
Перекладено ШІ
Оригінал: Laravel News
Оновлено: 17 грудня, 2025
Досліджуйте можливості нового пакету ImapEngine від Стівена Баума, який спрощує управління поштовими скриньками без використання PHP-розширень. Чи готові ви отримати нові знання та вдосконалити свої навички у Laravel? Читайте нашу статтю

Стів Бауман розповідає про свій новий пакет ImapEngine, який пропонує зручний API для управління поштовими скриньками без використання PHP-розширення, а також про його інтеграцію в новий продукт Spamwise.

Дивіться наше повне інтерв'ю:

Або слухайте в обраному додатку для подкастів:

# Приклади ImapEngine:

# Підключення до поштових скриньок

Щоб підключитися до поштової скриньки, створіть новий екземпляр Mailbox з параметрами конфігурації:

$mailbox = new Mailbox([
    'port' => 993,
    'username' => '...',
    'password' => '...',
    'encryption' => 'ssl',
    'host' => 'imap.example.com',
]);

Для підключення за допомогою токена OAuth передайте токен як пароль та встановіть метод authentication на oauth:

$token = '...';
 
$mailbox = new Mailbox([
    'port' => 993,
    'username' => '...',
    'password' => $token,
    'encryption' => 'ssl',
    'authentication' => 'oauth',
    'host' => 'imap.example.com',
]);

# Отримання папок

// Отримати вхідну папку.
$inbox = $mailbox->inbox();
 
// Отримати всі папки.
$folders = $mailbox->folders()->get();
 
// Отримати всі папки, що відповідають шаблону.
$folders = $mailbox->folders()->get('*/Subfolder');
 
// Знайти конкретну папку.
$folder = $mailbox->folders()->find('Folder Name');
 
// Знайти конкретну папку (або викинути помилку).
$folder = $mailbox->folders()->findOrFail('Missing Folder');

# Отримання повідомлень

ImapEngine надає зручний та ланцюговий API для складання складних запитів пошуку повідомлень.

Це дозволяє комбінувати різні критерії пошуку та параметри для отримання саме тих повідомлень, які вам потрібні:

// Отримати вхідну папку.
$inbox = $mailbox->folders()->inbox();
 
// Отримати всі UIDs повідомлень у вхідній папці.
$messages = $inbox->messages()->get();
 
// Отримати всі повідомлення у вхідній папці з різними параметрами вмісту.
$messages = $inbox->messages()
    ->withHeaders() // Дозволити отримання заголовків повідомлень.
    ->withFlags() // Дозволити отримання міток повідомлень.
    ->withBody() // Дозволити отримання тексту повідомлень (включаючи вкладення).
    ->get();

# Корисні посилання

Популярні

Logomark Logotype

Як задокументувати кілька API в Laravel за допомогою Scramble

Ви знали, що в одному додатку Laravel можна реалізувати кілька API? У нашій статті ви дізнаєтеся, як за допомогою Scramble легко документувати різні версії API та налаштувати доступ до документації, щоб зробити її публічною або приватною. Читайте далі, щоб дізнатися більше

Logomark Logotype

Створення CLI-додатка за допомогою Laravel та Docker

Зазирніть у світ Laravel, де потужний CLI-фреймворк відкриває нові можливості для розробки командного інтерфейсу. Дізнайтеся, як створити просту утиліту для перевірки акцій, яка працює з Docker, та які переваги це може принести у вашому проєкті!

Logomark Logotype

Простий пакет RabbitMQ для Laravel

Вам цікаво дізнатися, як спростити інтеграцію RabbitMQ у вашому Laravel-додатку? У нашій статті ми розглянемо пакет Simple RabbitMQ, який дозволяє легко налаштувати багатозʼєднання, публікувати повідомлення та обробляти черги за допомогою простого синтаксису. Читайте далі, щоб дізнатися більше!