Email
Подключение PRX к любому провайдеру электронной почты через IMAP для получения и SMTP для отправки с поддержкой IDLE push для доставки в реальном времени.
Предварительные требования
- Почтовый аккаунт с включённым доступом IMAP и SMTP
- Имена хостов и порты серверов IMAP/SMTP
- Учётные данные электронной почты (имя пользователя и пароль или пароль приложения)
Быстрая настройка
1. Включение доступа IMAP
Для большинства провайдеров:
- Gmail: включите IMAP в настройках Gmail > Пересылка и POP/IMAP, затем сгенерируйте пароль приложения
- Outlook: IMAP включён по умолчанию; используйте пароль приложения, если включена 2FA
- Самохостинг: убедитесь, что ваш почтовый сервер поддерживает IMAP
2. Конфигурация
toml
[channels_config.email]
imap_host = "imap.gmail.com"
imap_port = 993
smtp_host = "smtp.gmail.com"
smtp_port = 465
username = "[email protected]"
password = "your-app-password"
from_address = "[email protected]"
allowed_senders = ["[email protected]"]3. Проверка
bash
prx channel doctor emailСправочник конфигурации
| Поле | Тип | По умолчанию | Описание |
|---|---|---|---|
imap_host | String | обязательный | Имя хоста IMAP-сервера (например, "imap.gmail.com") |
imap_port | u16 | 993 | Порт IMAP-сервера (993 для TLS) |
imap_folder | String | "INBOX" | Папка IMAP для опроса новых сообщений |
smtp_host | String | обязательный | Имя хоста SMTP-сервера (например, "smtp.gmail.com") |
smtp_port | u16 | 465 | Порт SMTP-сервера (465 для implicit TLS, 587 для STARTTLS) |
smtp_tls | bool | true | Использовать TLS для SMTP-подключений |
username | String | обязательный | Имя пользователя для аутентификации IMAP/SMTP |
password | String | обязательный | Пароль электронной почты или пароль приложения |
from_address | String | обязательный | Адрес отправителя для исходящих писем |
idle_timeout_secs | u64 | 1740 | Таймаут IDLE в секундах перед переподключением (по умолчанию: 29 минут согласно RFC 2177) |
allowed_senders | [String] | [] | Разрешённые адреса или домены отправителей. Пусто = запрещено всем. "*" = разрешить всем |
default_subject | String | "PRX Message" | Тема по умолчанию для исходящих писем |
Возможности
- IMAP IDLE — push-уведомления в реальном времени о новых письмах (RFC 2177), без задержки опроса
- TLS-шифрование — подключения к серверам IMAP и SMTP зашифрованы через TLS
- Разбор MIME — обработка составных писем, извлечение текстового содержимого и вложений
- Фильтрация по доменам — разрешение целых доменов (например,
"@company.com") в списке разрешённых отправителей - Автоматическое переподключение — восстановление IDLE-подключения после 29-минутного таймаута
- Треды ответов — ответ в исходном почтовом треде с корректными заголовками
In-Reply-To
Ограничения
- Обрабатываются только письма в настроенной IMAP-папке (по умолчанию: INBOX)
- HTML-письма обрабатываются как простой текст (HTML-теги удаляются)
- Большие вложения могут не обрабатываться полностью в зависимости от ограничений памяти
- Некоторые провайдеры требуют паролей приложений при включённой 2FA
- Поддержка IDLE зависит от IMAP-сервера; большинство современных серверов её поддерживают
Устранение неполадок
Не удаётся подключиться к IMAP-серверу
- Проверьте корректность
imap_hostиimap_portдля вашего провайдера - Убедитесь, что доступ IMAP включён в настройках почтового аккаунта
- При использовании Gmail сгенерируйте пароль приложения (обычные пароли блокируются при 2FA)
- Проверьте, что TLS не блокируется файрволом
Письма не обнаруживаются
- Проверьте корректность
imap_folder(по умолчанию:"INBOX") - Убедитесь, что адрес или домен отправителя указан в
allowed_senders - Некоторые провайдеры могут иметь задержку перед появлением писем в IMAP
Ответы не отправляются
- Проверьте настройки
smtp_host,smtp_portиsmtp_tlsдля вашего провайдера - Проверьте учётные данные SMTP (те же
username/password, что и для IMAP, или отдельные SMTP-учётные данные) - Просмотрите журналы сервера для причин отклонения SMTP (например, ошибки SPF/DKIM)