Отправка e-mail через Python
Пример отправки уведомления менеджеру на e-mail через Python Script
В Nextbot уже есть действие Админу в мессенджер, через которое можно получать уведомления в Telegram, WhatsApp, MAX и другие каналы.
Если похожее уведомление нужно отправлять не в мессенджер, а на e-mail менеджера, это можно сделать через Python Script.
В этой статье рассмотрим простой сценарий: пользователь оставил данные, а менеджеру приходит письмо с уведомлением о новой заявке.
Это не отдельное встроенное действие Nextbot, а пример реализации через Python Script. Логика одинаковая для Mail.ru, Gmail и Яндекс.Почты: меняются только SMTP-настройки и способ получения пароля приложения.
Что понадобится
функция, в которой уже собираются данные клиента
действие
Python Scripte-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. Создайте или откройте функцию
Создайте новую функцию, например send_manager_email, или откройте существующую функцию, после которой менеджер должен получать уведомление на почту.
Шаг 2. Добавьте параметры функции
Если данные клиента ещё не передаются в функцию, добавьте параметры:
client_name
Строка
Имя клиента
phone
Строка
Телефон клиента
question
Строка
Кратко передай, что нужно клиенту
Внутри Python Script эти значения можно получить так:
Шаг 3. Выберите почтового провайдера
Ниже в разделе Настройки SMTP-провайдера выберите ваш вариант: Mail.ru, Gmail или Яндекс.Почта.
Из этого блока вам понадобятся значения для:
smtp_serversmtp_portsender_emailsender_password
Шаг 4. Вставьте Python-скрипт
Подставьте в код ниже SMTP-настройки вашего провайдера и e-mail менеджера.
Шаг 5. Сохраните и протестируйте код
Включите режим отладки в
Python Script.Нажмите «Тестировать код».
Передайте тестовые значения, например:
client_name:Иванphone:79991112233question:Хочет узнать стоимость и сроки
Нажмите «Запустить тест».
При успешной отправке в логах появятся сообщения о подключении, входе и отправке письма, а в result вернётся статус success.
Шаг 6. Добавьте инструкцию в системный промпт
После сохранения функции укажите в системном промпте, когда агент должен отправлять уведомление менеджеру.
Пример:
Если пользователь оставил контактные данные или просит передать информацию менеджеру, вызови функцию
send_manager_emailи передайclient_name,phoneиquestion.
Настройки SMTP-провайдера
Откройте почту
Mail.ru.Перейдите в Настройки → Все настройки → Безопасность → Пароли для внешних приложений.
Нажмите «Создать» и сохраните сгенерированный пароль.
Если сервис попросит выбрать тип доступа, выберите вариант для отправки писем через SMTP.
Официальная справка Mail.ru: пароль для внешнего приложения и настройка почтовой программы.
Включите двухфакторную аутентификацию в аккаунте Google.
Создайте пароль приложения: App Passwords.
Подставьте значения в переменные
smtp_server,smtp_port,sender_email,sender_password.
Убедитесь, что для ящика разрешена работа с почтовыми клиентами.
Создайте пароль приложения в
Яндекс ID.Подставьте значения в переменные
smtp_server,smtp_port,sender_email,sender_password.
Официальная справка Яндекса: Другие программы.
Дополнительные варианты
Если нужно отправлять копию второму менеджеру или руководителю
К основному примеру выше добавьте:
Важно: в sendmail нужно передавать список всех получателей, а не только основной e-mail.
Если данные приходят из формы персональных данных
Вместо args.get("client_name", ""), args.get("phone", "") и args.get("question", "") можно брать значения из формы:
Если нужно, customer_email тоже можно добавить в текст письма менеджеру.
Перед запуском проверьте:
используется пароль приложения, а не обычный пароль от почты
в
manager_emailуказан правильный адрес менеджерапервый тест лучше отправить на свой адрес
после теста проверьте папку
Спам
Частые ошибки
Менеджеру приходят пустые поля Значит, значения
client_name,phoneилиquestionне были переданы в функцию.Ошибка авторизации на SMTP-сервере Обычно это значит, что используется обычный пароль от почты вместо пароля приложения.
Письмо не найдено во входящих Проверьте папки
СпамиПромоакции, а также правильность адреса вmanager_email.Непонятно, где смотреть причину ошибки Включите режим отладки и посмотрите сообщения, отправленные через
debug().
Если вам подходят Telegram, WhatsApp, MAX и другие каналы без написания кода, используйте действие Админу в мессенджер.
Больше информации о Python Script — в статье Python.
Last updated
Was this helpful?