# Работа с электронной почтой

## &#x20;Для отправки email-сообщений&#x20;

{% hint style="warning" %}
Обратите внимание!

При выполнении функций для работы с email-сообщениями функция возвращает:

a) либо <mark style="color:зелёный;">**NONE**</mark> — при успешном выполнении функции;

b) либо <mark style="color:красный;">**статус ошибки**</mark> текст.
{% endhint %}

send\_email() | send\_email\_from\_bot() | send\_email\_template()

<details>

<summary>Описание</summary>

<mark style="color:по умолчанию;background-color:blue;">**Для отправки email-сообщения**</mark>

**send\_email(to\_email, subject, message)**&#x20;

Параметры:

<mark style="color:красный;">**!**</mark>**&#x20;to\_email - email адрес получателя** email address

<mark style="color:красный;">**!**</mark>**&#x20;subject -** тема письма

<mark style="color:красный;">**!**</mark>**&#x20;message -** текст письма

<mark style="color:по умолчанию;background-color:blue;">**Для отправки email-сообщений через бота**</mark>

**send\_email\_from\_bot(email\_bot, client\_email, email\_subject, text, attachment\_url)**&#x20;

Параметры:

<mark style="color:красный;">**!**</mark>**&#x20;email\_bot** - email адрес, привязанный к каналу email-рассылки \ <mark style="color:красный;">**!**</mark>**&#x20;client\_email** - email адрес клиента, на который будет отправлено сообщение\ <mark style="color:красный;">**!**</mark>**&#x20;email\_subject** - тема email (заголовок)\ <mark style="color:красный;">**!**</mark>**&#x20;text** - текст сообщения, отправляемого в email \
**attachment\_url** - URL вложения&#x20;

<mark style="color:по умолчанию;background-color:blue;">**Для пересылки черновика или отправленного email**</mark>

**send\_email\_template(mailing\_id, client\_email, email\_bot, date)**

Параметры:

<mark style="color:красный;">**!**</mark>**&#x20;mailing\_id** - ID шаблона рассылки (либо черновик, либо готовое письмо)

<mark style="color:красный;">**!**</mark>**&#x20;client\_email** - email адрес получателя

**email\_bot** - email адрес отправителя; по умолчанию email, подключенный к проекту

**date** - дата отправки email в формате ‘dd.mm.yyyy HH:mm’. Если дата находится в прошлом или не указана, письмо будет отправлено сразу после вызова функции.

</details>

<details>

<summary>Пример</summary>

Для отправки email-сообщения:

<div data-with-frame="true"><figure><img src="/files/ba72dded226364b23cdf6c41193cc3ae1d3e0e12" alt=""><figcaption></figcaption></figure></div>

Отправка через бота

<div data-with-frame="true"><figure><img src="/files/87235eb6ec935298af6bf325ebfac1f924c42e13" alt=""><figcaption></figcaption></figure></div>

Пример отправки ранее отправленного email:

Мы берем переменную из списка рассылки - id.

В этом примере это 483, которое будет использовано как mailing\_id.

Переходим в конструктор и вызываем функцию со следующими параметрами:

Вариант 1 – указание параметров явно:

`e_letter = send_email_template('483', "test@mail.ru", '', '09.08.2022 15:00')`

Вариант 2 – указание параметров с использованием переменных:

`mailing_id = '483'`\
`client_email = 'test@mail.ru' # email получателя`\
`email_bot = ''`\
`date = '09.08.2022 15:00' # поскольку на момент отправки дата уже в прошлом, письмо будет отправлено сразу после вызова функции`\
`e_letter = send_email_template(mailing_id, client_email, email_bot, date)`

<div data-with-frame="true"><figure><img src="/files/e31dccdc8be550eb3b421b3b5f070ea91a15c914" alt=""><figcaption><p>Пример настройки для отправки email</p></figcaption></figure></div>

В результате при вызове функции был отправлен шаблон заранее подготовленного email на <test@mail.com>.

</details>

<details>

<summary>Пример кода для копирования</summary>

```
send_email('john.smith@gmail.com', 'Это заголовок', 'А это текст')

/*через бота*/
mailing = send_email_from_bot('test_channel@test.com', 'test_client@gmail.com', 'Тема письма. Просто простая', 'Привет, я отправляю тебе мое сообщение', 'https://sun9-82.userapi.com/impg/L3ZYWHnlseIQsqZO')
```

</details>

## Для подтверждения рассылок на email адрес клиента

confirm\_email\_subscription()

<details>

<summary>Описание</summary>

**confirm\_email\_subscription(email, sender\_name, bot\_email, callback,client\_name)**

{% hint style="info" %}
Эта функция предназначена для сбора согласия клиентов на отправку email-рассылок.

Когда клиент предоставляет свой email адрес через мессенджер, сначала отправляется запрос на согласие.&#x20;Email-клиент создается только после того, как клиент подтвердит свое согласие.

В результате email-адреса с подтвержденным согласием считаются более надежными, что помогает повысить общую доставляемость ваших email и репутацию отправителя.
{% endhint %}

{% hint style="warning" %}
Важно!&#x20;

Нельзя отправлять рассылки с потенциально рекламным содержимым без согласия клиента.

Не игнорируйте эту информацию, чтобы избежать штрафных санкций за нарушения.
{% endhint %}

Параметры:

**email** - email адрес клиента для проверки и добавления

**sender\_name** - название компании, от имени которой вы запрашиваете согласие на получение рассылок

**bot\_email** - email адрес бота, к которому будет привязан новый email-клиент

**callback** - требуются ли callback-и или нет для клиентов, подтверждающих свой email адрес, и для нового email-клиента (по умолчанию: False)

**client\_name** - имя, которое будет присвоено email-клиенту

Отправленные callback-и будут иметь следующий формат:

"client\_accept\_email\_subscription: #{email}" - callback для клиента, подтверждающего свой email адрес

"email\_client\_accepted\_by ID:#{@client.id}" - callback для нового клиента (ID подтверждающего клиента будет сохранен в переменной client\_father\_id)

Отправьте сообщение для проверки адреса после того, как пользователь предоставит свой email.

После того как пользователь подтвердит свое согласие на получение рассылок от компании, новый email-клиент будет добавлен в ваш список.

Таким образом, у вас не будет "мертвых лидов" в кампаниях, а ваша email-база будет состоять только из адресов клиентов, которые действительно заинтересованы в ваших продуктах.

</details>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.mavibot.ai/doc/ru/chatbot/functions/kalkulyator/email.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
