Тестирование электронной почты (библиотека ИнтернетПочта)¶
Gherkin-шаги для проверки писем через платформенный объект ИнтернетПочта
(SMTP — отправка, IMAP — чтение). Типовое применение — проверить письма, которые
шлёт тестируемая конфигурация (уведомления, задачи по почте), против локального
тестового почтового сервера (GreenMail, smtp4dev и т.п.).
Мини-пример¶
Контекст:
Допустим пользователь SMTP 'user@localhost'
И пользователь IMAP 'user@localhost'
Сценарий: письмо доходит до ящика
Допустим Я отправляю письмо от имени 'user@localhost' по адресу 'user@localhost' с темой 'Привет'
Тогда в ящике 'INBOX' есть сообщения
И темой сообщения 'Привет'
Затем я отключаюсь от почтового сервера
Шаги¶
| Шаг | Назначение |
|---|---|
пользователь SMTP/IMAP '...' |
Логин (пароль = логину); смена учётных данных разрывает активное подключение |
Я отправляю письмо от имени '...' по адресу '...' с темой '...' |
Отправка письма; шаг падает, если письмо не доставлено хотя бы одному получателю |
я создаю ящик '...' / я очищаю ящик '...' от сообщений |
Подготовка почтовых ящиков |
в ящике '...' есть сообщения [с темой\|с текстом\|от\|для] '...' |
Серверные отборы (IMAP SEARCH); проверка с повторами (доставка асинхронна) |
темой / текстом / заголовком сообщения '...', сообщения от / для '...', текстом вложения сообщения '...' |
Клиентские дофильтры по уже отобранному списку; читают письма в режиме PEEK — не помечают прочитанными |
я отвечаю на это сообщение |
Ответ на первое отобранное письмо (In-Reply-To и References по RFC 5322) |
я отключаюсь от почтового сервера |
Явное отключение в конце сценария |
Ограничения¶
- Серверные отборы по Теме и Тексту работают только с ASCII; кириллицу проверяйте клиентскими дофильтрами (
темой сообщения,текстом сообщения). - Отборы по отправителю и получателю — по полному адресу (подстрока или домен не находят).
- Шаги не работают в веб-клиенте.
- Шаг
в ящике '...' есть новые сообщениянестабилен: опирается на IMAP-флаг\Recent, который сбрасывается любым обращением к ящику. В новых сценариях не используйте.
Исходник библиотеки: features/Libraries/ИнтернетПочта/. История изменений — Changelog.