envelope-open-textОтправка e-mail через Python

Пример отправки уведомления менеджеру на e-mail через Python Script

В Nextbot уже есть действие Админу в мессенджер, через которое можно получать уведомления в Telegram, WhatsApp, MAX и другие каналы.

Если похожее уведомление нужно отправлять не в мессенджер, а на e-mail менеджера, это можно сделать через Python Script.

В этой статье рассмотрим простой сценарий: пользователь оставил данные, а менеджеру приходит письмо с уведомлением о новой заявке.

circle-info

Это не отдельное встроенное действие Nextbot, а пример реализации через Python Script. Логика одинаковая для Mail.ru, Gmail и Яндекс.Почты: меняются только SMTP-настройки и способ получения пароля приложения.

Что понадобится

  • функция, в которой уже собираются данные клиента

  • действие Python Script

  • e-mail отправителя

  • пароль приложения от почтового провайдера

  • e-mail менеджера, на который будут приходить уведомления

  • обязательная переменная result

Какие данные будем отправлять менеджеру

Для примера ниже используем 3 параметра функции:

Имя параметра
Тип параметра
Что передаём

client_name

Строка

Имя клиента

phone

Строка

Телефон клиента

question

Строка

Что хочет клиент или с каким вопросом обратился

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

Общий принцип

  • e-mail менеджера в примере задаётся прямо в коде в переменной manager_email

  • данные клиента берутся из args, например: args.get("client_name", "")

  • debug() помогает смотреть логи выполнения во время теста

  • result обязателен: его получает ИИ-агент после выполнения скрипта

  • в среде Python Script уже доступны smtplib, ssl и MIMEText, поэтому дополнительные зависимости не нужны

1

Шаг 1. Создайте или откройте функцию

Создайте новую функцию, например send_manager_email, или откройте существующую функцию, после которой менеджер должен получать уведомление на почту.

2

Шаг 2. Добавьте параметры функции

Если данные клиента ещё не передаются в функцию, добавьте параметры:

Имя параметра
Тип параметра
Инструкция для параметра

client_name

Строка

Имя клиента

phone

Строка

Телефон клиента

question

Строка

Кратко передай, что нужно клиенту

Внутри Python Script эти значения можно получить так:

3

Шаг 3. Выберите почтового провайдера

Ниже в разделе Настройки SMTP-провайдера выберите ваш вариант: Mail.ru, Gmail или Яндекс.Почта.

Из этого блока вам понадобятся значения для:

  • smtp_server

  • smtp_port

  • sender_email

  • sender_password

4

Шаг 4. Вставьте Python-скрипт

Подставьте в код ниже SMTP-настройки вашего провайдера и e-mail менеджера.

5

Шаг 5. Сохраните и протестируйте код

  1. Включите режим отладки в Python Script.

  2. Нажмите «Тестировать код».

  3. Передайте тестовые значения, например:

    • client_name: Иван

    • phone: 79991112233

    • question: Хочет узнать стоимость и сроки

  4. Нажмите «Запустить тест».

При успешной отправке в логах появятся сообщения о подключении, входе и отправке письма, а в result вернётся статус success.

6

Шаг 6. Добавьте инструкцию в системный промпт

После сохранения функции укажите в системном промпте, когда агент должен отправлять уведомление менеджеру.

Пример:

Если пользователь оставил контактные данные или просит передать информацию менеджеру, вызови функцию send_manager_email и передай client_name, phone и question.

Настройки SMTP-провайдера

  1. Откройте почту Mail.ru.

  2. Перейдите в Настройки → Все настройки → Безопасность → Пароли для внешних приложений.

  3. Нажмите «Создать» и сохраните сгенерированный пароль.

  4. Если сервис попросит выбрать тип доступа, выберите вариант для отправки писем через SMTP.

Официальная справка Mail.ru: пароль для внешнего приложенияarrow-up-right и настройка почтовой программыarrow-up-right.

Дополнительные варианты

chevron-rightЕсли нужно отправлять копию второму менеджеру или руководителюhashtag

К основному примеру выше добавьте:

Важно: в sendmail нужно передавать список всех получателей, а не только основной e-mail.

chevron-rightЕсли данные приходят из формы персональных данныхhashtag

Вместо args.get("client_name", ""), args.get("phone", "") и args.get("question", "") можно брать значения из формы:

Если нужно, customer_email тоже можно добавить в текст письма менеджеру.

circle-exclamation

Частые ошибки

  • Менеджеру приходят пустые поля Значит, значения client_name, phone или question не были переданы в функцию.

  • Ошибка авторизации на SMTP-сервере Обычно это значит, что используется обычный пароль от почты вместо пароля приложения.

  • Письмо не найдено во входящих Проверьте папки Спам и Промоакции, а также правильность адреса в manager_email.

  • Непонятно, где смотреть причину ошибки Включите режим отладки и посмотрите сообщения, отправленные через debug().

circle-info

Если вам подходят Telegram, WhatsApp, MAX и другие каналы без написания кода, используйте действие Админу в мессенджер.

Больше информации о Python Script — в статье Python.

Last updated

Was this helpful?