> ## Documentation Index
> Fetch the complete documentation index at: https://ayakaleaf-pro.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Доставка електронної пошти

> Надсилайте листи активації, запрошення та скидання пароля з розгортання Kubernetes.

Служба **web** надсилає всі листи (активація, запрошення до проєктів, скидання пароля) з кожного пода Ayakaleaf Pro. Налаштування такі самі, як і в Toolkit, див. [Доставка електронної пошти](https://ayakaleaf-pro.mintlify.site/uk/on-premises/configuration/overleaf-toolkit/email-delivery.md).

| | |
| - | - |
| Служба | web, у кожному поді Ayakaleaf Pro; зчитується під час запуску web |
| Под → зовні | ваш сервер SMTP (`OVERLEAF_EMAIL_SMTP_HOST`) або API Amazon SES регіону `OVERLEAF_EMAIL_AWS_SES_REGION` |
| Стан | обмеження частоти надсилання в Redis |
| Періодичні завдання | немає |

### Конфігурація

**1. ConfigMap**

```yaml title="30-config.yaml (additions)" wrap theme={null}
  OVERLEAF_EMAIL_FROM_ADDRESS: no-reply@example.com
  OVERLEAF_EMAIL_SMTP_HOST: smtp.example.com
  OVERLEAF_EMAIL_SMTP_PORT: "587"
  OVERLEAF_EMAIL_SMTP_SECURE: "false"
  OVERLEAF_EMAIL_SMTP_USER: no-reply@example.com
  # optional
  # OVERLEAF_EMAIL_REPLY_TO: support@example.com
  # OVERLEAF_EMAIL_SMTP_IGNORE_TLS: "false"
  # OVERLEAF_EMAIL_SMTP_TLS_REJECT_UNAUTH: "true"
```

`OVERLEAF_EMAIL_FROM_ADDRESS` вмикає надсилання. Задавайте його лише разом із сервером SMTP (або SES): лише з відправником Ayakaleaf Pro звертається до сервера SMTP всередині пода, і кожен лист не надсилається. Без нього листи не надсилаються, а лише записуються в `web.log`.

`OVERLEAF_EMAIL_SMTP_SECURE`, `OVERLEAF_EMAIL_SMTP_IGNORE_TLS` і `OVERLEAF_EMAIL_SMTP_TLS_REJECT_UNAUTH` зчитуються як JSON, тож використовуйте `"true"` або `"false"`: значення на кшталт `yes` зупиняє всі служби пода під час запуску.

**2. Secret**

```bash theme={null}
kubectl -n overleaf patch secret overleaf-secrets --type merge \
  -p '{"stringData":{"OVERLEAF_EMAIL_SMTP_PASS":"<SMTP password>"}}'
```

Для API Amazon SES натомість додайте сюди `OVERLEAF_EMAIL_AWS_SES_ACCESS_KEY_ID` і `OVERLEAF_EMAIL_AWS_SES_SECRET_KEY`, а `OVERLEAF_EMAIL_DRIVER: ses` і `OVERLEAF_EMAIL_AWS_SES_REGION` — до ConfigMap.

**3. Застосуйте, перезапустіть і перевірте**

```bash theme={null}
kubectl apply -f 30-config.yaml
kubectl -n overleaf rollout restart deployment/overleaf     # or statefulset/overleaf
```

Надішліть собі лист для скидання пароля зі сторінки входу. Якщо він не надходить, перевірте, чи доступний сервер SMTP з подів, і перегляньте журнал web:

```bash theme={null}
kubectl -n overleaf exec deploy/overleaf -- bash -c 'echo > /dev/tcp/smtp.example.com/587 && echo reachable'
kubectl -n overleaf exec deploy/overleaf -- grep -iE "email|smtp" /var/log/overleaf/web.log | tail
```

### Кілька реплік

Нічого додаткового. Кожна репліка надсилає листи з тими самими налаштуваннями, а обмеження частоти надсилання підраховується в Redis для всіх реплік разом. Якщо ваш сервер SMTP приймає лише відомих відправників, дозвольте адреси, з якими поди виходять із кластера (зазвичай адреси вузлів).

### Перевірено в Kubernetes

З Mailpit як сервером SMTP, у Kubernetes 1.37 з однією реплікою, наші наскрізні тести, що надсилають електронну пошту, проходять: лист активації облікового запису, створеного адміністратором, лист активації самостійної реєстрації, обмеженої доменами, лист для скидання пароля, лист із повідомленням користувачеві про видалення його облікового запису, а також поведінка, коли сервер SMTP відхиляє лист активації чи видалення: обліковий запис однаково створюється або видаляється, а лист активації можна надіслати знову пізніше. З `OVERLEAF_EMAIL_FROM_ADDRESS` і без хоста SMTP запит на скидання пароля завершився помилкою, а `web.log` показав «error sending message», як описано вище.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.