Files
K3S/addons/smtp-relay/README.md
Sergey Antropoff 38aaadbfb1 docs: sync addon docs with explicit external/internal service modes
Обновлена документация под новые аддоны (gitlab, redis, mongodb, kafka, kafka-ui, rabbitmq) и новую модель явного выбора зависимостей. Добавлены и унифицированы описания переключателей *_database_mode и *_redis_mode, обновлена таблица зависимостей аддонов, примеры конфигурации и список vault-секретов.
2026-04-29 23:21:04 +03:00

126 lines
3.3 KiB
Markdown

# SMTP Relay
Postfix-relay для отправки email из подов через внешний SMTP сервер (Yandex, Gmail, Mail.ru и другие). Доступен внутри кластера как `smtp-relay.smtp-relay.svc.cluster.local:25`. Принимает письма только из доверенных сетей кластера.
## Быстрый старт
```yaml
# group_vars/all/addons.yml
addon_smtp_relay: true
smtp_relay_host: "smtp.yandex.ru"
smtp_relay_port: 465
smtp_relay_username: "user@yandex.ru"
smtp_relay_allowed_sender_domains: "example.com"
```
Секрет в `vault.yml`:
```yaml
vault_smtp_relay_password: "app-password"
```
```bash
make addon-smtp-relay
```
## Параметры
| Переменная | Умолч. | Описание |
|---|---|---|
| `smtp_relay_host` | `smtp.yandex.ru` | SMTP сервер |
| `smtp_relay_port` | `465` | Порт (465=SMTPS, 587=STARTTLS) |
| `smtp_relay_username` | — | Логин SMTP |
| `smtp_relay_mynetworks` | RFC1918 | Доверенные подсети |
| `smtp_relay_from` | — | Envelope-from (rewriting) |
## Настройка для разных провайдеров
### Yandex (порт 465, SMTPS)
```yaml
smtp_relay_host: "smtp.yandex.ru"
smtp_relay_port: 465
smtp_relay_username: "user@yandex.ru"
```
### Gmail (порт 587, STARTTLS)
```yaml
smtp_relay_host: "smtp.gmail.com"
smtp_relay_port: 587
smtp_relay_username: "user@gmail.com"
# Для Gmail нужен App Password (не основной пароль)
```
### Mail.ru (порт 465)
```yaml
smtp_relay_host: "smtp.mail.ru"
smtp_relay_port: 465
smtp_relay_username: "user@mail.ru"
```
## Endpoint внутри кластера
```
Host: smtp-relay.smtp-relay.svc.cluster.local
Port: 25
```
## Использование в приложениях
### Jenkins
Jenkins → Manage → Configure System → Extended E-mail Notification:
- SMTP server: `smtp-relay.smtp-relay.svc.cluster.local`
- Port: `25`
- Use SMTP Authentication: нет
### Vaultwarden
```yaml
vaultwarden_smtp_enabled: true
vaultwarden_smtp_host: "smtp-relay.smtp-relay.svc.cluster.local"
vaultwarden_smtp_port: 25
vaultwarden_smtp_security: "off"
```
### Любое приложение (env vars)
```yaml
env:
- name: SMTP_HOST
value: "smtp-relay.smtp-relay.svc.cluster.local"
- name: SMTP_PORT
value: "25"
- name: SMTP_FROM
value: "noreply@example.com"
```
### Python
```python
import smtplib
from email.mime.text import MIMEText
msg = MIMEText("Hello from K3S!")
msg['Subject'] = "Test"
msg['From'] = "noreply@example.com"
msg['To'] = "user@example.com"
with smtplib.SMTP("smtp-relay.smtp-relay.svc.cluster.local", 25) as s:
s.sendmail(msg['From'], [msg['To']], msg.as_string())
```
## Диагностика
```bash
kubectl logs -n smtp-relay deployment/smtp-relay -f
# Тест отправки из пода:
kubectl run smtp-test --image=alpine --rm -it -- \
sh -c "apk add --no-cache ssmtp && echo 'Subject: test' | ssmtp user@example.com"
```
## Официальные ресурсы
- Официальный сайт: [https://www.postfix.org/](https://www.postfix.org/)
- Официальная документация: [https://www.postfix.org/documentation.html](https://www.postfix.org/documentation.html)
- Версии Helm chart / ПО: [https://hub.docker.com/_/postfix](https://hub.docker.com/_/postfix)