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

3.3 KiB

SMTP Relay

Postfix-relay для отправки email из подов через внешний SMTP сервер (Yandex, Gmail, Mail.ru и другие). Доступен внутри кластера как smtp-relay.smtp-relay.svc.cluster.local:25. Принимает письма только из доверенных сетей кластера.

Быстрый старт

# 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:

vault_smtp_relay_password: "app-password"
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)

smtp_relay_host: "smtp.yandex.ru"
smtp_relay_port: 465
smtp_relay_username: "user@yandex.ru"

Gmail (порт 587, STARTTLS)

smtp_relay_host: "smtp.gmail.com"
smtp_relay_port: 587
smtp_relay_username: "user@gmail.com"
# Для Gmail нужен App Password (не основной пароль)

Mail.ru (порт 465)

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

vaultwarden_smtp_enabled: true
vaultwarden_smtp_host: "smtp-relay.smtp-relay.svc.cluster.local"
vaultwarden_smtp_port: 25
vaultwarden_smtp_security: "off"

Любое приложение (env vars)

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

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())

Диагностика

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"

Официальные ресурсы