sidebar_position: 7 title: "Email" description: "Set up Hermes Agent as an email assistant via IMAP/SMTP" lang: ru


Настройка электронной почты

Hermes может получать электронные письма и отвечать на них, используя стандартные протоколы IMAP и SMTP. Отправьте электронное письмо на адрес агента, и он ответит в цепочке — никакого специального клиента или API-интерфейса бота не требуется. Работает с Gmail, Outlook, Yahoo, Fastmail или любым провайдером, поддерживающим IMAP/SMTP.

ℹ️ Info

Нет внешних зависимостей Адаптер электронной почты использует встроенные модули Python `imaplib`, `smtplib` и `email`. Никаких дополнительных пакетов или внешних услуг не требуется.

Предварительные условия

Настройка Gmail

  1. Включите двухфакторную аутентификацию в своей учетной записи Google.
  2. Перейдите в Пароли приложений
  3. Создайте новый пароль приложения (выберите «Почта» или «Другое»).
  4. Скопируйте 16-значный пароль — вы будете использовать его вместо обычного пароля.

Outlook / Microsoft 365

  1. Зайдите в Настройки безопасности
  2. Включите 2FA, если она еще не активна.
  3. Создайте пароль приложения в разделе «Дополнительные параметры безопасности».
  4. Хост IMAP: outlook.office365.com, хост SMTP: smtp.office365.com

Другие провайдеры

Большинство провайдеров электронной почты поддерживают IMAP/SMTP. Проверьте документацию вашего провайдера на наличие: - Хост и порт IMAP (обычно порт 993 с SSL) - Хост и порт SMTP (обычно порт 587 с STARTTLS) - Требуются ли пароли приложений


Шаг 1: Настройте Гермес

Самый простой способ:

hermes gateway setup

Выберите Электронная почта в меню платформы. Мастер запросит ваш адрес электронной почты, пароль, хосты IMAP/SMTP и разрешенных отправителей.

Ручная настройка

Добавьте в ~/.hermes/.env:

# Required
EMAIL_ADDRESS=hermes@gmail.com
EMAIL_PASSWORD=abcd efgh ijkl mnop    # App password (not your regular password)
EMAIL_IMAP_HOST=imap.gmail.com
EMAIL_SMTP_HOST=smtp.gmail.com

# Security (recommended)
EMAIL_ALLOWED_USERS=your@email.com,colleague@work.com

# Optional
EMAIL_IMAP_PORT=993                    # Default: 993 (IMAP SSL)
EMAIL_SMTP_PORT=587                    # Default: 587 (SMTP STARTTLS)
EMAIL_POLL_INTERVAL=15                 # Seconds between inbox checks (default: 15)
EMAIL_HOME_ADDRESS=your@email.com      # Default delivery target for cron jobs

Шаг 2: Запустите шлюз

hermes gateway              # Run in foreground
hermes gateway install      # Install as a user service
sudo hermes gateway install --system   # Linux only: boot-time system service

При запуске адаптер: 1. Тестирует соединения IMAP и SMTP. 2. Помечает все существующие входящие сообщения как «просмотренные» (обрабатывает только новые письма). 3. Начинает опрос новых сообщений.


Как это работает

Получение сообщений

Адаптер опрашивает папку «Входящие» IMAP на предмет НЕВИДИМЫХ сообщений через настраиваемый интервал (по умолчанию: 15 секунд). Для каждого нового письма:

Отправка ответов

Ответы отправляются через SMTP с правильной цепочкой сообщений электронной почты:

Вложения файлов

Агент может отправлять в ответах вложения файлов. Включите MEDIA:/path/to/file в ответ, и файл будет прикреплен к исходящему письму.

Пропуск вложений

Чтобы игнорировать все входящие вложения (для защиты от вредоносного ПО или экономии трафика), добавьте в свой адрес config.yaml:

platforms:
  email:
    skip_attachments: true

Если этот параметр включен, вложенные и встроенные части пропускаются перед декодированием полезных данных. Основной текст электронного письма по-прежнему обрабатывается нормально.


Контроль доступа

Доступ к электронной почте осуществляется по той же схеме, что и на всех других платформах Hermes:

  1. EMAIL_ALLOWED_USERS set → обрабатываются только письма с этих адресов.
  2. Белый список не установлен → неизвестные отправители получают код сопряжения.
  3. EMAIL_ALLOW_ALL_USERS=true → принимается любой отправитель (используйте с осторожностью)

:::предупреждение Всегда настраивайте EMAIL_ALLOWED_USERS. Без него любой, кто знает адрес электронной почты агента, сможет отправлять команды. По умолчанию агент имеет доступ к терминалу.


Поиск неисправностей

Проблема Решение
"Не удалось подключиться к IMAP" при запуске Проверьте EMAIL_IMAP_HOST и EMAIL_IMAP_PORT. Убедитесь, что IMAP включен в учетной записи. Для Gmail включите его в «Настройки» → «Пересылка и POP/IMAP».
"SMTP-соединение не удалось" при запуске Проверьте EMAIL_SMTP_HOST и EMAIL_SMTP_PORT. Убедитесь, что ваш пароль верен (используйте пароль приложения для Gmail).
Сообщения не получены Проверка EMAIL_ALLOWED_USERS включает адрес электронной почты отправителя. Проверьте папку со спамом — некоторые провайдеры отмечают автоматические ответы.
"Аутентификация не удалась" Для Gmail вы должны использовать пароль приложения, а не обычный пароль. Сначала убедитесь, что 2FA включена.
Повторяющиеся ответы Убедитесь, что работает только один экземпляр шлюза. Проверьте hermes gateway status.
Медленный ответ Интервал опроса по умолчанию составляет 15 секунд. Уменьшите с помощью EMAIL_POLL_INTERVAL=5 для более быстрого ответа (но большего количества соединений IMAP).
Ответы не обрабатываются Адаптер использует заголовки In-Reply-To. Некоторые почтовые клиенты (особенно веб-клиенты) могут неправильно обрабатывать автоматические сообщения.

Безопасность

:::предупреждение Используйте выделенную учетную запись электронной почты. Не используйте личную электронную почту — агент хранит пароль в .env и имеет полный доступ к почтовому ящику через IMAP. – Используйте Пароли приложений вместо основного пароля (требуется для Gmail с 2FA). - Установите EMAIL_ALLOWED_USERS, чтобы ограничить круг лиц, которые могут взаимодействовать с агентом. - Пароль хранится в ~/.hermes/.env — защитите этот файл (chmod 600) - IMAP по умолчанию использует SSL (порт 993), а SMTP — STARTTLS (порт 587) — соединения шифруются.


Справочник по переменным среды

Переменная Требуется По умолчанию Описание
EMAIL_ADDRESS Да Адрес электронной почты агента
EMAIL_PASSWORD Да Пароль электронной почты или пароль приложения
EMAIL_IMAP_HOST Да Хост IMAP-сервера (например, imap.gmail.com)
EMAIL_SMTP_HOST Да Хост SMTP-сервера (например, smtp.gmail.com)
EMAIL_IMAP_PORT Нет 993 Порт IMAP-сервера
EMAIL_SMTP_PORT Нет 587 Порт SMTP-сервера
EMAIL_POLL_INTERVAL Нет 15 Секунды между проверками входящих сообщений
EMAIL_ALLOWED_USERS Нет Разрешенные адреса отправителей, разделенные запятыми
EMAIL_HOME_ADDRESS Нет Цель доставки по умолчанию для заданий cron
EMAIL_ALLOW_ALL_USERS Нет false Разрешить всем отправителям (не рекомендуется)