Перейти к содержанию

SMTP для n8n: письма, приглашения, password reset, Gmail, Mail.ru и ошибки доставки

Обновлено: 2026-05-29

SMTP в n8n нужен не только для ноды Send Email. В self-hosted инстансе почта влияет на приглашения пользователей, password reset, уведомления и рабочие workflow с письмами. Если SMTP не настроен, часть функций можно обходить вручную, но для команды это быстро становится неудобно и небезопасно.

Есть два разных сценария: системная почта самого n8n и отправка писем из workflow. Их лучше разделять: для системных уведомлений используйте env-переменные n8n, а для бизнес-писем — отдельные credentials или специализированный сервис вроде Mailgun, SendGrid, Amazon SES, SMTP2GO, корпоративного SMTP.

Системный SMTP n8n через env

services:
  n8n:
    environment:
      - N8N_EMAIL_MODE=smtp
      - N8N_SMTP_HOST=smtp.example.ru
      - N8N_SMTP_PORT=587
      - N8N_SMTP_USER=${N8N_SMTP_USER}
      - N8N_SMTP_PASS=${N8N_SMTP_PASS}
      - N8N_SMTP_SENDER=nodbot@example.ru
      - N8N_SMTP_SSL=false

Для порта 465 обычно используют SSL/TLS сразу. Для 587 — STARTTLS. У разных провайдеров названия в панели могут отличаться, но смысл один: порт, шифрование, логин, пароль, отправитель.

Gmail, Яндекс, Mail.ru и app password

Многие почтовые сервисы не дают подключаться обычным паролем аккаунта. Нужен app password или OAuth. Для Gmail в SMTP credential обычно используют smtp.gmail.com, порт 465 или 587 и app password. Для корпоративной почты проверьте, разрешён ли SMTP вообще: администратор может отключить его политикой безопасности.

СервисЧто проверитьЧастая ошибка
Gmail2FA и app passwordобычный пароль не подходит
Mail.ru / Яндексразрешение внешних приложенийблокировка SMTP-авторизации
Microsoft 365политики modern authSMTP AUTH отключён или требуется OAuth
Корпоративный SMTPallowlist IP сервера n8nrelay denied

Send Email node и системный SMTP — не одно и то же

Env-переменные настраивают системные письма n8n. Нода Send Email использует свои credentials. Это удобно: системные письма идут от технического адреса, а бизнес-письма — от отдела продаж, поддержки или noreply-домена.

Если нужны ответы в существующую цепочку писем, учитывайте ограничение SMTP-ноды: для полноценного email threading часто лучше использовать Gmail node или специализированный API, где можно управлять reply/message headers.

Smoke-test доставки

  1. Перезапустите n8n после изменения env.
  2. Создайте тестового пользователя или отправьте password reset.
  3. Проверьте логи контейнера n8n.
  4. Проверьте inbox, spam и карантин домена.
  5. Проверьте SPF, DKIM и DMARC для домена отправителя.
docker compose logs --tail=200 n8n | grep -i smtp
openssl s_client -connect smtp.example.ru:587 -starttls smtp

Если SMTP-сервер доступен только из корпоративной сети, VPS может не подключиться к нему напрямую. Тогда нужен relay, allowlist IP или внешний transactional mail provider.

Почему письма не доходят

СимптомПричинаРешение
authentication failedневерный логин, пароль или app passwordпересоздать пароль приложения, проверить username
connection timeoutпорт закрыт провайдером VPS или firewallпроверить outbound 465/587, использовать другой relay
self-signed certificateSMTP с нестандартным сертификатомисправить сертификат, не отключать TLS без необходимости
письма в spamнет SPF/DKIM/DMARC или плохой senderнастроить DNS и домен отправителя
relay deniedSMTP не разрешает отправку с IP n8nallowlist IP или другой SMTP-сервис

Минимальная конфигурация для команды

  • отдельный technical sender: n8n@example.ru или no-reply@example.ru;
  • SPF, DKIM, DMARC на домене;
  • app password или сервисный SMTP-аккаунт, а не пароль владельца;
  • лимит на массовые отправки через workflow;
  • логирование статуса отправки и ошибок доставки;
  • separate credentials для системных и бизнес-писем.

Когда SMTP лучше не использовать

Если workflow отправляет много писем клиентам, SMTP может быть слабым местом: лимиты, spam, отсутствие нормальной аналитики и bounce handling. Для массовых или транзакционных писем лучше API-сервис: он даст webhooks по доставке, bounce, complaint, unsubscribe и более понятные лимиты.

Операционный runbook для self-hosted

Для темы «SMTP для n8n» важно разделять настройку и эксплуатацию. Настройка отвечает на вопрос “запустилось ли”, эксплуатация — “сможем ли мы восстановиться, обновиться и расследовать инцидент без потери credentials и execution history”.

Перед изменениями проверьте бэкап базы, значение N8N_ENCRYPTION_KEY, состояние volume, логи web-процесса и worker-процесса. Главный риск — получить уверенный, но непроверенный ответ модели, сломанный JSON или дорогой цикл retry.

СлойЧто зафиксироватьЗачем
Входобъект Google API: строка таблицы, письмо, календарное событие или файл с внешним IDпозволяет повторить проблему без доступа к production-секретам
Контрольvalidation_error_rate, token_cost, fallback_usage, human_review_rate, source_coverageпоказывает деградацию раньше, чем пользователи начинают писать в поддержку
Безопасностьполучить уверенный, но непроверенный ответ модели, сломанный JSON или дорогой цикл retryснижает риск скрытых дублей, утечки данных и неконтролируемых write-действий
Готовностьесть тест на happy path, пустой вход, повтор и сбой внешнего сервиса для «SMTP для n8n»делает статью пригодной для runbook, а не только для чтения

Пример безопасного входного контракта

{
  "request_id": "req_demo_001",
  "prompt_version": "2026-05-29",
  "input": "краткое нормализованное сообщение пользователя",
  "allowed_actions": ["read", "draft", "classify"],
  "forbidden_actions": ["send_without_review", "change_payment"],
  "expected_output": {
    "intent": "technical|support|sales|unknown",
    "confidence": 0.0,
    "needs_human_review": true,
    "sources": []
  }
}

Критерий готовности

  • есть свежий backup базы и проверено значение N8N_ENCRYPTION_KEY
  • web, worker, queue и database используют согласованные переменные окружения
  • после изменения проверены логи, healthcheck и запуск критичных workflow
  • записан rollback-план с командами и ответственным

Связанные материалы

Эксплуатационный контекст для self-hosted n8n

Страницу «SMTP для n8n: письма, приглашения, password reset, Gmail, Mail.ru и ошибки доставки» лучше читать как часть production-карты self-hosted n8n. Любое изменение инфраструктуры должно иметь владельца, план проверки, понятный rollback и наблюдаемость. Перед применением на VPS или в Kubernetes зафиксируйте текущую версию n8n, способ запуска, путь к данным, переменные окружения и место хранения backup.

Главный риск self-hosted установки — исправить один симптом и не заметить побочный эффект: потерю credentials, рост execution data, недоступность webhooks, ошибку reverse proxy или зависшие workers. Поэтому после изменений проверяйте не только UI, но и healthcheck, production webhook URL, очередь, базу данных, логи контейнера и успешный тестовый execution.

Ops-чеклист перед изменением

  • Сделайте backup базы, файлового хранилища и критичных env-переменных.
  • Проверьте, что есть понятный rollback и окно обслуживания.
  • Сравните логи до и после изменения: 4xx/5xx, latency, memory, disk, stalled jobs.
  • Проведите тест webhook, scheduled workflow и ручного запуска.

Для команды полезно хранить эту проверку рядом с runbook: что изменяли, кто подтвердил результат, какие метрики смотрели и какое условие считается неуспешным релизом.

  • Self-hosted n8n — открыть связанный материал для проверки контекста.
  • Логи и мониторинг — открыть связанный материал для проверки контекста.
  • Backup и update — открыть связанный материал для проверки контекста.
  • Launch checklist — открыть связанный материал для проверки контекста.