Настройка SMTP-сервера для отправки писем в n8n
В этом руководстве я покажу, как можно настроить SMTP на своем собственном сервере n8n для отправки писем и уведомлений.
Перед тем, как повторять нижеприведенные шаги, вы должны установить n8n на своем собственном сервере. Подробнее о том, как это сделать, читайте в этом руководстве. В нем я использовал решение selfhost-ai (ex. n8n-install, Автор - Yury Kossakovsky) - готовый инсталлятор для развертывания n8n Community Edition и целого набора дополнительных сервисов на собственном сервере под управлением Docker Compose.
SMTP-сервер (Simple Mail Transfer Protocol) - это стандартный протокол для отправки электронных писем через Интернет. В контексте n8n он играет роль почтового агента, который позволяет системе общаться с внешним миром и пользователями без вашего ручного участия.
Без настройки SMTP на своем сервере n8n теряет ключевую часть своей полезности как инструмента автоматизации, потому что он не сможет отправлять уведомления, оповещения и письма для восстановления доступа. Например, если пользователь вашей платформы забудет пароль, кнопка Восстановить пароль выдаст ошибку. Без SMTP вам придется каждый раз заходить на сервер через терминал и вручную сбрасывать его. К тому же, администратору не нужно генерировать временные пароли и пересылать их вручную. Система сама отправит красивое письмо со ссылкой на регистрацию.
Хоть с определенной версии n8n функционал пригласительных ссылок (Generate Invite Link) стал доступен из интерфейса, это не отменяет традиционного способа инвайтов.
Отправка писем полезна и при автоматизации бизнес-процессов. Вы можете создавать рабочие процессы, которые отправляют email при наступлении событий. Например, когда:
- новый пользователь зарегистрировался на сайте;
- оформлен заказ в интернет-магазине;
- завершен отчет или выполнен запланированный процесс;
- произошла ошибка в другом рабочем процессе (узел Error Trigger).
Настроив SMTP один раз, вы включаете сквозную автоматизацию, не требуя ручных действий от администратора (вас). Ниже я хочу продемонстрировать вам три способа настройки STMP-сервера для отправки исходящих писем в n8n:
- от вашего хостинг-провайдера (с использованием доменной почты);
- от Яндекса (с использованием личной почты @yandex.ru);
- от Google (с использованием личной почты @gmail.com).
Давай начнем с первого варианта.
STMP-сервер вашего хостинг-провайдера
Настроить SMTP-сервер от вашего хостинг-провайдера зачастую даже проще, чем для Яндекса и Google, так как у хостинга нет таких жестких лимитов на отправку, как у личных аккаунтов.
Данные для подключения (адрес сервера и порты) всегда уникальны для каждого хостинга, но сам алгоритм настройки везде одинаков. В качестве примера я буду использовать Beget, так как мой сервер n8n развернут именно там. Для этого целесообразно воспользоваться их в официальной документацией. К слову, у каждого хостинг-провайдера есть своя инструкция по настройке почтовых клиентов. Например:
Настройка SMTP через хостинг-провайдера зачастую оказывается проще, чем через Яндекс или Google, так как у серверных аккаунтов нет таких жестких лимитов на отправку, как у личных аккаунтов.
Параметры подключения (адрес сервера и порты) различаются в зависимости от провайдера, но сам алгоритм настройки везде одинаков. В качестве примера я буду использовать Beget, так как мой сервер n8n развернут именно там. И воспользуюсь их официальной документацией. К слову, у каждого хостинг-провайдера есть своя инструкция по настройке почтовых клиентов. Например:
Для того, чтобы прописать настройки подключения, необходимо создать свой почтовый ящик. На Beget это можно сделать, перейдя в раздел Почта в левом меню:
Далее выбрать домен из списка ваших доменов, с почтовыми ящиками которого вы хотите работать:
Для создания почтового ящика необходимо указать Имя почтового ящика и Пароль. Имя почтового ящика должно содержать имя ящика до символа @. Например, для создания ящика info@вашдомен.ru в поле Имя создаваемого ящика необходимо ввести только info (в моем примере - это hi для почты hi@n8nbox.ru). Пароль при необходимости можно сгенерировать, нажав на иконку волшебной палочки, либо указать свой собственный:
Обязательно сохраните свой пароль. Он вам понадобится далее в настройке SMTP. В завершение нажмите кнопку Создать. Новый почтовый ящик отобразится в списке снизу для текущего домена:
В карточке почтового ящика также будет отображено количество писем в нем и занимаемый ими размер почтовой квоты.
Согласно официальной документации, для настройки работы исходящей почты через сервера Beget нужно использовать следующие реквизиты подключения:
- SMTP-сервер - smtp.beget.com
- SMTP-порт (защищенный SSL) - 465
Но куда вводить эти значения, если вы используете n8n на своем собственном сервере (Self-Hosted)? В n8n существует два совершенно разных места для ввода настроек SMTP. Все зависит от того, какую задачу вы решаете.
Первый вариант - внутри рабочего процесса (workflow) n8n. Если вы создаете сценарий, где, например, при поступлении новой заявки пользователю отправляется письмо с подтверждением, тогда вы создаете узел Send an Email, и уже внутри него в блоке Credential подключаете свой SMTP-аккаунт:
Нажав на кнопку Set up credential, вам нужно будет добавить данные от своего SMTP:
- User - ваша почта
- Password - ваш пароль
- Host - SMTP-сервер вашего хостинг-провайдера
- Port - 465
- SSL/TLS - активно
Вот так это может выглядеть в интерфейсе n8n:
Задайте название учетным данным и сохраните их. Внутри n8n вы можете сразу проверить соединение. Если появится зеленое уведомление Connection tested successfully, значит, интеграция с SMTP-сервером успешно настроена:
После этого вы можете двигаться дальше и настраивать узел Send an Email для отправки писем.
Второй вариант отправки писем - это системные уведомления n8n (приглашения пользователей, сброс паролей и т.д.). Если вы хотите, чтобы сама платформа n8n могла отправлять технические письма, эти данные нужно прописывать в переменные окружения (Environment Variables) в файле .env вашей сборки:
|
1 2 3 4 5 6 7 |
N8N_EMAIL_MODE=smtp N8N_SMTP_HOST=адрес SMTP-сервера N8N_SMTP_PORT=465 N8N_SMTP_USER=email@вашдомен.ru N8N_SMTP_PASS=ваш_пароль N8N_SMTP_SSL=true N8N_SMTP_SENDER=email@вашдомен.ru |
Переменные окружения - это именованные пары «ключ-значение», которые хранятся в файле конфигурации (как правило, в файле .env) отдельно от исходного кода платформы. Они используются для управления глобальными настройками приложения и централизованного хранения параметров доступа. В такие переменные выносят как публичные данные (например, часовой пояс, порты или URL-адреса серверов), так и конфиденциальную информацию (пароли от баз данных, API-токены или ключи от SMTP-почты).
Когда вы устанавливаете n8n на свой собственный сервер (например, с использованием репозитория selfhost-ai), ваша сборка автоматически создает и заполняет файл .env (от англ. environment - окружение) сразу после установки служб и Docker-контейнеров. Это текстовый файл с настройками сервера, который хранит важные параметры и секретные данные вашего приложения (сгенерированные пароли, ключи API, доступы к базе данных) в формате ключ=значение. Приложение читает их при запуске, поэтому секреты и параметры не лежат в самом коде.
Этот файл видят только те, у кого есть прямой доступ к серверу (через SSH, файлы или панель хостинга): вы, системный администратор или коллеги с правами доступа. Для обычных пользователей из Интернета он полностью закрыт.
Главное назначение файла .env - хранить настройки и секреты сервера отдельно от кода: пароли, ключи шифрования, параметры окружения. Такой файл не публикуют в открытых репозиториях вроде GitHub, поэтому исходный код можно безопасно показывать другим. Кроме того, одну и ту же программу легко запускать в разных условиях (тест / продакшен / другой сервер): меняют значения в .env и перезапускают приложение, не переписывая сам код.
В n8n ключи внешних сервисов для workflow обычно хранят в Credentials, а .env отвечает за конфигурацию и секреты самого инстанса (вашего экземпляра n8n). И именно в этом файле находятся переменные STMP, которые необходимо заполнить для отправки системных уведомлений в n8n:
- N8N_EMAIL_MODE=smtp - включает режим отправки писем через SMTP;
- N8N_SMTP_HOST - адрес SMTP-сервера (например, smtp.yandex.ru);
- N8N_SMTP_PORT - порт SMTP-сервера (обычно 587 для TLS или 465 для SSL);
- N8N_SMTP_USER - имя пользователя для аутентификации на SMTP-сервере;
- N8N_SMTP_PASS - пароль для аутентификации на SMTP-сервере;
- N8N_SMTP_OAUTH_SERVICE_CLIENT и N8N_SMTP_OAUTH_PRIVATE_KEY - используются для аутентификации через OAuth 2.0 (например, для Gmail) вместо пароля;
- N8N_SMTP_SENDER - адрес электронной почты, который будет указан как отправитель (From);
- N8N_SMTP_SSL=true - включает SSL-шифрование для соединения;
- N8N_SMTP_STARTTLS=true - включает STARTTLS (обновление соединения до защищенного). Обычно используется вместе с портом 587.
Поскольку я в своей работе использую сборку selfhost-ai (ex. n8n-install), то для изменения значений для этих переменных необходимо перейти в сам файл .env. Сделать это очень просто. Подключившись к своему серверу по SSH-соединению, зайдите в папку проекта:
|
1 2 |
cd selfhost-ai cd n8n-install // старый вариант |
После этого введите команду:
|
1 |
sudo nano .env |
или просто:
|
1 |
nano .env |
Эта команда сработает только в том случае, если вы уже находитесь в папке с файлом. После ее ввода откроется сам документ. Пролистайте текст вниз с помощью стрелок на клавиатуре, пока не найдете блок с переменными SMTP:
Заполните данные по образу и подобию с учетом параметров вашего хостинг-провайдера. Для Beget готовый блок будет выглядеть следующим образом (просто скопируйте его, заменив почту и пароль на свои):
|
1 2 3 4 5 6 7 8 9 10 |
N8N_EMAIL_MODE=smtp N8N_SMTP_HOST=smtp.beget.com N8N_SMTP_PORT=465 N8N_SMTP_USER=hi@n8nbox.ru N8N_SMTP_PASS='ваш_пароль_от_почты' N8N_SMTP_OAUTH_SERVICE_CLIENT= N8N_SMTP_OAUTH_PRIVATE_KEY= N8N_SMTP_SENDER=hi@n8nbox.ru N8N_SMTP_SSL=true N8N_SMTP_STARTTLS=false |
- N8N_SMTP_USER и N8N_SMTP_SENDER - обязательно должен быть указан ваш полный адрес доменной почты (он же логин);
- Переменные с OAUTH мы оставляем абсолютно пустыми (ничего не пишем после знака =);
- Для порта 465 мы принудительно включаем N8N_SMTP_SSL=true и отключаем N8N_SMTP_STARTTLS=false, так как это разные протоколы защиты.
- Если в вашем пароле от почты есть специальные символы (например: &, $, #, ! и т.д.) или пробелы, значение переменной N8N_SMTP_PASS обязательно нужно обернуть в одинарные кавычки: N8N_SMTP_PASS='XXXXXXXX'
Обратите внимание, что привычная комбинация Ctrl+V в консольном редакторе не работает. Чтобы вставить скопированный блок настроек или пароль, используйте другие сочетания клавиш в зависимости от вашей операционной системы:
- в Windows (в командной строке или PowerShell): нажмите правую кнопку мыши или комбинацию Ctrl+Shift+V
- в macOS (в терминале): используйте стандартное сочетание Cmd+V
После того как вы впишете настройки, нажмите Ctrl+O, а затем Enter для сохранения, и Ctrl+X для выхода из редактора.
Чтобы ваш сервер n8n перечитал измененный файл .env и применил новые настройки SMTP, контейнеры необходимо перезапустить. Если вы используете сборку selfhost-ai (ex. n8n-install), то просто введите в терминале команду:
|
1 |
make restart |
Если ваш проект n8n развернут стандартным методом, используйте классическую команду перезапуска контейнеров:
|
1 |
docker compose down && docker compose up -d |
После этого n8n (и другие службы) на некоторое время остановит работу, применит все изменения из файла .env и запустит платформу заново с обновленными параметрами. Ваша система сразу начнет использовать встроенный почтовый сервер для отправки уведомлений.
Чтобы убедиться в успешной настройке SMTP, в интерфейсе n8n перейдите в раздел Settings - Users и попробуйте отправить себе приглашение на любой почтовый ящик:
Если на вашу личную почту пришло письмо со ссылкой-приглашением, значит настройка SMTP-сервера выполнена успешно!
Настройка через SMTP-сервер Яндекса
Если вы используете корпоративную или личную почту от Яндекса, процесс настройки в файле .env будет очень похожим, но со своими важными нюансами. Главное отличие - Яндекс в целях безопасности запрещает использовать ваш основной пароль от учетной записи для сторонних программ. Для этого используется пароль приложения.
Однако даже с правильным паролем приложения почта Яндекса может не отправляться из-за внутренних настроек безопасности самого ящика. Чтобы все заработало без сбоев, необходимо включить поддержку сторонних программ в настройках почты. Для этого авторизуйтесь в браузере под той учетной записью Яндекса, от которой будут рассылаться письма, и зайдите в свой почтовый ящик.
Нажмите на иконку шестеренки и выберите Все настройки:
В открывшемся окне перейдите в Почтовые программы:
На странице в настройках почтовых программ поставьте две галочки:
- С сервера imap.yandex.ru по протоколу IMAP
- Способ авторизации по IMAP - Пароли приложений и OAuth-токены
И сохраните изменения.
Без этого Яндекс будет просто блокировать любые внешние подключения от n8n.
После этого зайдите в ваш аккаунт Яндекс в раздел Безопасность. Прокрутите вниз и найдите блок Доступ к вашим данным. Откройте
Создайте пароль приложения, выбрав Почта:
В открывшемся окне на первом шаге придумайте имя пароля. Например - n8n-smtp:
Нажмите Далее. На заключительном шаге вам покажут пароль приложения (он показывается только один раз!):
Скопируйте и сохраните пароль. Вернитесь в файл .env, удалите старые настройки почты (если они были) и вставьте официальные реквизиты Яндекса. Готовый блок выглядит так:
|
1 2 3 4 5 6 7 8 9 10 |
N8N_EMAIL_MODE=smtp N8N_SMTP_HOST=smtp.yandex.ru N8N_SMTP_PORT=465 N8N_SMTP_USER=ваш_почта@yandex.ru N8N_SMTP_PASS='ваш_пароль_приложения' N8N_SMTP_OAUTH_SERVICE_CLIENT= N8N_SMTP_OAUTH_PRIVATE_KEY= N8N_SMTP_SENDER=ваш_почта@yandex.ru N8N_SMTP_SSL=true N8N_SMTP_STARTTLS=false |
Если у вас подключен свой домен через Яндекс 360, то в переменных N8N_SMTP_USER и N8N_SMTP_SENDER укажите вашу доменную почту вида info@вашдомен.ru. Но сервер smtp.yandex.ru останется прежним.
Завершите этот этап уже знакомой процедурой: сохраните изменения с помощью сочетания клавиш Ctrl+O, а затем Enter, а потом Ctrl+X. Перезапустите контейнеры командой make restart или универсальной командой Docker (см. выше).
Настройка через SMTP-сервер Google
Настройка отправки через SMTP от Google очень похожа на Яндекс, но имеет свои требования к безопасности. Google давно заблокировал использование обычных паролей для сторонних приложений и требует создания специального пароля приложения. Если вы хотите, чтобы n8n отправлял уведомления через ваш ящик Gmail (или корпоративный Google Workspace), вам также понадобится сгенерировать отдельный секретный пароль. Обычный пароль от вашего аккаунта Google система не примет.
Для его создания в вашем аккаунте Gmail обязательна должна быть установлена двухфакторная аутентификация. Перейдите в настройки вашего аккаунта в раздел Безопасность. Убедитесь, что в блоке Вход в Google включена Двухэтапная аутентификация:
После этого в строке поиска сверху введите Пароли приложений и перейдите в открывшийся раздел. Это также можно сделать по ссылке:
На следующем шаге подтвердите, что это ваш аккаунт:
После этого вам откроется страница создания пароля приложения. Придумайте ему название. Например - n8n-smtp:
Нажмите Создать. Google покажет вам в отдельном окошке 16-значный пароль. Скопируйте его.
Вернитесь в файл .env, удалите старые настройки почты (если они были) и вставьте официальные реквизиты Google SMTP. Готовый блок выглядит так:
|
1 2 3 4 5 6 7 8 9 10 |
N8N_EMAIL_MODE=smtp N8N_SMTP_HOST=smtp.gmail.com N8N_SMTP_PORT=465 N8N_SMTP_USER=ваш_почта@gmail.com N8N_SMTP_PASS='ваш_пароль_приложения' N8N_SMTP_OAUTH_SERVICE_CLIENT= N8N_SMTP_OAUTH_PRIVATE_KEY= N8N_SMTP_SENDER=ваш_почта@gmail.com N8N_SMTP_SSL=true N8N_SMTP_STARTTLS=false |
Google выдает пароль приложения разделенным на блоки по 4 символа (например, aaaa bbbb cccc dddd). При заполнении N8N_SMTP_PASS обязательно оберните его в одинарные кавычки. Вы можете оставить пробелы внутри кавычек или удалить их сервер Google успешно авторизует оба варианта, но запись без пробелов считается более надежной.
Бесплатные аккаунты Gmail имеют жесткое ограничение на отправку - не более 500 писем в сутки. Для системных уведомлений n8n этого более чем достаточно, но для массовых рассылок этот способ использовать нельзя.
После внесения изменений не забудьте сохранить файл через Ctrl+O, подтверждение Enter и выйти через Ctrl+X, а затем применить настройки командой make restart или универсальной командой Docker перезапуска:
|
1 |
docker compose down && docker compose up -d |
Настройка системных уведомлений через файл .env - важный шаг в обеспечении стабильной и безопасной работы вашего Self-Hosted сервера n8n. Теперь ваша платформа полностью готова к полноценной командной работе: она сможет вовремя прислать ссылку для восстановления пароля, отправить приглашение коллеге или предупредить о критическом сбое.
Какой бы почтовый сервис вы ни выбрали (бесплатную доменную почту от Beget, другого хостинг-провайдера или надежные экосистемы Яндекса и Google) - ваши секретные ключи и пароли приложений остались под вашим полным контролем на личном сервере!





























