Настройка электронной почты
Hermes может получать и отправлять электронные письма, используя стандартные протоколы IMAP и SMTP. Отправьте письмо на адрес агента, и он ответит в том же ответе — не требуется специальный клиент или API-бота. Работает с Gmail, Outlook, Yahoo, Fastmail или любым провайдером, поддерживающим IMAP/SMTP.
ℹ️ Info
Без внешних зависимостей Адаптер электронной почты использует встроенные модули Pythonimaplib,smtplib иemail. Никаких дополнительных пакетов или внешних сервисов не требуется.Предварительные требования
- Выделенный почтовый аккаунт для вашего агента Hermes (не воспользуйтесь личной почтой)
- IMAP включен для предоставления почтового аккаунта.
- Пароль приложения, если используется Gmail или другой провайдер с двухфакторной аутентификацией.
Настройка Gmail
- Включите двухфакторную аутентификацию в ваш аккаунт Google.
- Перейдите в Пароли приложений
- Создайте новый пароль приложения (выберите «Почта» или «Другое»)
- Скопируйте 16-символьный пароль — вы будете использовать его вместо обычного пароля.
Outlook / Microsoft 365
- Перейдите в Настройки безопасности.
- Включите двухфакторную аутентификацию, если ещё не включена.
- Введите пароль приложения в разделе «Дополнительные параметры безопасности».
- IMAP-хост:
outlook.office365.com, SMTP-хост:smtp.office365.com
Другие провайдеры
Большинство почтовых провайдеров используют IMAP/SMTP. Проверьте документацию вашего провайдера для получения информации о: - IMAP-хост и порт (обычно порт 993 с SSL) - SMTP-хост и порт (обычно порт 587 с STARTTLS) - Требуются ли пароли приложений
Шаг 1: Настройка Гермеса
Самый простой способ:
hermes gateway setup
Выберите Электронная почта в меню платформы. Мастер запросит ваш адрес электронной почты, пароль, IMAP/SMTP-хосты и разрешения отправленных отправителей.
Ручная настройка
Добавьте в ~/.hermes/.env:
# Обязательные
EMAIL_ADDRESS=hermes@gmail.com
EMAIL_PASSWORD=abcd efgh ijkl mnop # Пароль приложения (не ваш обычный пароль)
EMAIL_IMAP_HOST=imap.gmail.com
EMAIL_SMTP_HOST=smtp.gmail.com
# Безопасность (рекомендуется)
EMAIL_ALLOWED_USERS=your@email.com,colleague@work.com
# Опциональные
EMAIL_IMAP_PORT=993 # По умолчанию: 993 (IMAP SSL)
EMAIL_SMTP_PORT=587 # По умолчанию: 587 (SMTP STARTTLS)
EMAIL_POLL_INTERVAL=15 # Секунд между проверками входящих (по умолчанию: 15)
EMAIL_HOME_ADDRESS=your@email.com # Адрес доставки по умолчанию для cron-задач
Шаг 2: Запуск шлюза
hermes gateway # Запуск в фоновом режиме
hermes gateway install # Установка как пользовательский сервис
sudo hermes gateway install --system # Только Linux: системный сервис при загрузке
При запуске адаптера: 1. Проверяет соединения IMAP и SMTP. 2. Помечает все входящие сообщения как "прочитанные" (обрабатывается только новыми письмами) 3. Начинает опрос о наличии новых сообщений.
Как это работает
Получение сообщений
Адаптер опрашивает IMAP-входы на наличие непрочитанных сообщений с настраиваемым интервалом (по умолчанию: 15 секунд). Для каждого нового письма:
- Тема письма включается как контекст (например,
[Тема: Развертывание в производство]) - Ответные письма (тема начинается с
Re:) пропускают префикс темы — контекст ветки уже установлен - Вложения кэшируются локально:
- Изображения (JPEG, PNG, GIF, WebP) → доступны для инструмента Vision.
- Документы (PDF, ZIP и т.д.) → доступны для работы с файлами
- Письма только в HTML очищаются от тегов для извлечения обычного текста
- Сообщения от самого себя отфильтровываются для предотвращения циклов ответов.
- Автоматические отправители / no-reply отключаются без уведомлений —
noreply@,mailer-daemon@,bounce@,no-reply@, а также письма с заголовкамиАвтоматическая отправка,Приоритет: массоваяилиСписок-отмена подписки
Отправка ответов
Ответы отправляются через SMTP с логичной организацией веток:
- Заголовки В ответе и Ссылки на соответствующую ветку.
- Тема букв сохраняется с префиксом
Re:(без двойногоRe: Re:) - Message-ID плавно переходит с доменного агента
- Ответы отправляются в виде обычного текста (UTF-8).
Вложения файлы
Агент может отправлять файлы в приложениях в ответах. Включите в ответ MEDIA:/path/to/file, и файл будет прикреплён к исходному письму.
Пропуск вложений
Чтобы включить все соединения вложения (для защиты от конкурентных программ или экономии трафика), страницы в config.yaml:
platforms:
email:
skip_attachments: true
При включении этих дополнительных устройств и встроенных частей обеспечивается декодирование полезной нагрузки. Текст письма обрабатывается как обычно.
Контроль доступа
Доступ по электронной почте следует тому же шаблону, что и все остальные платформы Hermes:
EMAIL_ALLOWED_USERSзадан → обрабатываются только письма с этих адресов- Белый список не задан → неизвестные отправители получают код для привязки.
EMAIL_ALLOW_ALL_USERS=true→ принимайте любых отправителей (используйте с осторожностью):::предупреждение Всегда настраивайтеEMAIL_ALLOWED_USERS. Без него любой, кто знает адрес электронной почты агента, сможет отправить команду. По умолчанию агент получил доступ к терминалу.