# Робота з електронною поштою

## &#x20;Для надсилання електронних листів&#x20;

{% hint style="warning" %}
Зверніть увагу!

Під час виконання функцій для роботи з електронними листами функція повертає:

a) або <mark style="color:green;">**NONE**</mark> — у разі успішного виконання функції;

b) або <mark style="color:red;">**статус помилки**</mark> текст.
{% endhint %}

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

<details>

<summary>Опис</summary>

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

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

Параметри:

<mark style="color:red;">**!**</mark>**&#x20;to\_email - адреса електронної пошти одержувача** адреса електронної пошти

<mark style="color:red;">**!**</mark>**&#x20;subject -** тема листа

<mark style="color:red;">**!**</mark>**&#x20;message -** текст листа

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

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

Параметри:

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

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

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

Параметри:

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

<mark style="color:red;">**!**</mark>**&#x20;client\_email** - адреса електронної пошти одержувача

**email\_bot** - адреса електронної пошти відправника; за замовчуванням — електронна пошта, підключена до проєкту

**date** - дата надсилання листа у форматі ‘dd.mm.yyyy HH:mm’. Якщо дата в минулому або не вказана, лист буде надіслано одразу після виклику функції.

</details>

<details>

<summary>Приклад</summary>

Для надсилання електронного листа:

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

Надсилання через бота

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

Приклад надсилання раніше надісланого листа:

Ми беремо змінну зі списку розсилки — 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/1ffaa45f3b368b5061297181931281dbfd1b9fc3" alt=""><figcaption><p>Приклад налаштування для надсилання електронного листа</p></figcaption></figure></div>

У результаті, коли функцію було викликано, шаблон заздалегідь підготовленого листа було надіслано на <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>

## Для підтвердження розсилок на адресу електронної пошти клієнта

confirm\_email\_subscription()

<details>

<summary>Опис</summary>

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

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

Коли клієнт надає свою адресу електронної пошти через месенджер, спочатку надсилається запит на згоду.&#x20;Електронний клієнт створюється лише після того, як клієнт підтвердить свою згоду.

У результаті адреси електронної пошти з підтвердженою згодою вважаються більш надійними, що допомагає покращити загальну доставлюваність ваших листів і репутацію відправника.
{% endhint %}

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

Ви не можете надсилати розсилки, що містять потенційно рекламний контент, без згоди клієнта.

Не ігноруйте цю інформацію, щоб уникнути штрафів за порушення.
{% endhint %}

Параметри:

**email** - адреса електронної пошти клієнта для перевірки та додавання

**sender\_name** - назва компанії, від імені якої ви запитуєте згоду на отримання розсилок

**bot\_email** - адреса електронної пошти бота, до якої буде прив’язано нового email-клієнта

**callback** - callbacks потрібні (або не потрібні) для клієнтів, які підтверджують свою адресу електронної пошти, та для нового email-клієнта (за замовчуванням: False)

**client\_name** - ім’я, яке буде призначено email-клієнту

Надіслані callbacks матимуть такий формат:

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

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

Надішліть повідомлення для перевірки адреси після того, як користувач вкаже свою електронну пошту.

Після того як користувач підтвердить свою згоду на отримання розсилок від компанії, новий 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/uk/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.
