Стів Бауман розповідає про свій новий пакет ImapEngine, який пропонує зручний API для управління поштовими скриньками без використання PHP-розширення, а також про його інтеграцію в новий продукт Spamwise.
Дивіться наше повне інтерв'ю:
Або слухайте в обраному додатку для подкастів:
Щоб підключитися до поштової скриньки, створіть новий екземпляр 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();