Отправка e-mail

Пример отправки e-mail с использованием Python Script

Пример 1: Уведомление о новом клиенте ИИ-агент уточняет имя и email клиента → формирует письмо с данными клиента → отправляет его менеджеру или продавцу.

Пример 2: Подбор и отправка информации пользователю ИИ-агент общается с клиентом, выявляет его интересы → получает контактные данные (email) → подбирает релевантную информацию → формирует персональное письмо → отправляет его клиенту, добавляя менеджера в копию.

Отправка письма через GMAIL

Для отправки письма через Gmail с помощью Python-скрипта необходимо выполнить подготовительные шаги.

Настройки Gmail (обязательно)

  1. Включите двухфакторную аутентификацию в аккаунте Gmail.

  2. Создайте пароль приложения (App Password) по инструкции:

    1. Перейдите по ссылке: https://myaccount.google.com/apppasswords

    2. Введите название приложения, например nextbot, и нажмите Создать.

    3. Вы получите 16-значный код. Сохраните его

  3. Подставьте полученный пароль в переменную sender_password, а вашу Gmail-почту — в переменную sender_email в коде. В переменной subject задайте нужную тему письма. В переменной body укажите необходимое содержимое письма.

try:
    debug("Подготовка к отправке email через Gmail...")

    smtp_server = "smtp.gmail.com"
    smtp_port = 465

    sender_email = "[email protected]" # Заменить на вашу gmail почту
    sender_password = "xxxx xxxx xxxx xxxx" # Заменить (пароль приложения Gmail)
    receiver_email = args.get("customer_email", "") # Подставляем email из переменной

    subject = "Тестовое письмо" # Тема письма
    body = "Это письмо отправлено из сервиса Nextbot." # Тело письма

    # Получаем MIMEText из словаря
    MIMEText = email["mime"]["text"]["MIMEText"]
    msg = MIMEText(body, "plain")

    # Добавляем заголовки через .add_header
    msg.add_header("Subject", subject)
    msg.add_header("From", sender_email)
    msg.add_header("To", receiver_email)

    debug("Создано MIME-сообщение с заголовками")

    # Устанавливаем SSL и отправляем письмо
    context = ssl.create_default_context()
    with smtplib.SMTP_SSL(smtp_server, smtp_port, context=context) as server:
        debug("Подключение к SMTP-серверу...")
        server.login(sender_email, sender_password)
        debug("Успешный вход")
        server.sendmail(sender_email, receiver_email, msg.as_string())
        debug("Письмо отправлено")

    result = {
        "status": "success",
        "message": "Письмо успешно отправлено"
    }

except Exception as e:
    debug(f"Ошибка при отправке письма: {str(e)}")
    result = {
        "status": "error",
        "message": str(e)
    }
Пример с отправкой копии менеджеру
try:
    debug("Подготовка к отправке email через Gmail...")

    smtp_server = "smtp.gmail.com"
    smtp_port = 465

    sender_email = "[email protected]"  # Заменить
    sender_password = "xxxx xxxx xxxx xxxx"  # Пароль приложения Gmail
    receiver_email = args.get("customer_email", "")  # Получатель
    cc_email = "[email protected]"  # Получатель в копии (CC)

    subject = "Тестовое письмо"
    body = "Это письмо отправлено из сервиса Nextbot."

    MIMEText = email["mime"]["text"]["MIMEText"]
    msg = MIMEText(body, "plain")

    msg.add_header("Subject", subject)
    msg.add_header("From", sender_email)
    msg.add_header("To", receiver_email)
    msg.add_header("Cc", cc_email)  # <- добавляем копию

    debug("Создано MIME-сообщение с заголовками")

    context = ssl.create_default_context()
    with smtplib.SMTP_SSL(smtp_server, smtp_port, context=context) as server:
        debug("Подключение к SMTP-серверу...")
        server.login(sender_email, sender_password)
        debug("Успешный вход")

        # Важно: передаём список всех получателей (To + Cc)
        recipients = [receiver_email, cc_email]
        server.sendmail(sender_email, recipients, msg.as_string())
        debug("Письмо отправлено")

    result = {
        "status": "success",
        "message": "Письмо с копией успешно отправлено"
    }

except Exception as e:
    debug(f"Ошибка при отправке письма: {str(e)}")
    result = {
        "status": "error",
        "message": str(e)
    }
  1. Создайте новую функцию, например, send_email, или модифицируйте существующую, добавив в неё отправку email.

  2. Добавьте переменную customer_email.

  3. Включите Python Script и замените код на тот, что получился в шаге 3.

  4. Сохраните функцию.

  5. Введите инструкцию в промпте для сбора email и вызова функции.

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

Mail.ru

smtp_server = "smtp.mail.ru"
smtp_port = 465
sender_email = "ваш_адрес@mail.ru"
sender_password = "пароль_приложения"

Пароль приложения создаётся в личном кабинете Mail.ru:

  • Аккаунт → Безопасность → Пароли приложений → Создать.

Яндекс.Почта

smtp_server = "smtp.yandex.ru"
smtp_port = 465
sender_email = "[email protected]"
sender_password = "пароль_приложения"

Получение пароля приложения:

  • Перейди в https://passport.yandex.ru/profile

  • Включи двухфакторную защиту

  • Перейди в "Пароли приложений" → создать → выберите «SMTP»

Last updated

Was this helpful?