Налаштування внутрішнього SMTP-сервера

1. Загальна інформація

Внутрішній SMTP-сервер – це платформенний компонент, призначений для відправлення нотифікацій кінцевим користувачам.

Під час інсталяції платформи його буде розгорнуто у проекті smtp-server.

Оскільки ззовні доступний лише веб-інтерфейс, а всі інші порти ізольовані у кластері, що значно підвищує безпеку, доступна лише відправка листів. Отримати пошту на скриньку у цьому поштовому сервісі неможливо!
Тут і надалі DNS_WILDCARD - це доменне ім’я кластера.

Веб-інтерфейс користувача доступний за адресою https://mail.<DNS_WILDCARD>/ .

Веб-інтерфейс адміністратора доступний за адресою https://mail.<DNS_WILDCARD>/admin .

2. Робота з DNS записами

2.1. Генерація DNS записів

Перейдіть у веб-інтерфейс адміністратора та авторизуйтесь.

Дані для авторизації можна знайти у секреті mailu-admin-credentials у проекті smtp-server. До username необхідно додати @<DNS_WILDCARD>

У боковому меню у секції Administration оберіть Mail domains. На сторінці, що відкрилася, навпроти вашого домену у секції Actions натисніть на іконку Details.

Відкриття інформації про поштовий домен
Figure 1. Відкриття інформації про поштовий домен

На сторінці, що відкрилася, у верхньому правому кутку натисніть Regenerate keys. В результаті ви отримаєте список необхідних DNS записів, що необхідно додати до вашої публічної DNS зони (1 – MX, 3 – TXT).

Згенеровані DNS записи
Figure 2. Згенеровані DNS записи

До згенерованого DNS SPF запису необхідно додати публічну IP адресу шлюзу через який проходить вихідний трафік з машин кластеру (у випадку розгортання у AWS, це буде Elastic IP платформенного NAT Gateway).

Таким чином, якщо, наприклад, IP вашого шлюзу це 12.34.56.78, то запис буде виглядати так: "v=spf1 mx a:mail.<DNS_WILDCARD> ip4:12.34.56.78 -all"

Додайте записи до DNS зони.

Route53 у AWS має обмеження на довжину TXT запису. Таким чином, при додаванні DNS DKIM запису ви можете отримати помилку Bad request. (InvalidChangeBatch 400: CharacterStringTooLong (Value is too long))

В такому випадку текстову частину запису з публічним ключем треба розділити умовно навпіл за допомогою трьох символів: подвійні лапки, пробіл, подвійні лапки. Наприклад, TXT частина запису

"v=DKIM1; k=rsa; p=abcdefghijklmnopqrstuvwxyz"

матиме вигляд

"v=DKIM1; k=rsa; p=abcdefghijkl" "mnopqrstuvwxyz"

2.2. Перевірка правильності створених DNS записів

Після того, як записи буде оновлено на DNS серверах провайдера, рекомендується перевірити налаштування за допомогою сервіса mxtoolbox.

Введіть ваш <DNS_WILDCARD> у поле та натисніть кнопку Check Email Health. Зачекайте на результати перевірки.

Наявність лише цих трьох помилок свідчить про правильність налаштування:

Перевірка у сервісі mxtoolbox
Figure 3. Перевірка у сервісі mxtoolbox

3. Отримання дозволу на відправку email у AWS

У випадку розгортання платформи у AWS, за замовчуванням будь-який трафік з 25 порту (SMTP) заблокований[1].

Необхідно створити запит Request to remove email sending limitations у техпідтримку AWS. Час розглядання запиту – до 48 годин.

Поле запиту Значення

Email address

Ваш контактний e-mail, куди буде надіслано результати обробки запиту.

Use case description

Детально описана причина для зняття обмежень із зазначенням особливостей відправки листів. Приклад:

We’re going to deploy own SMTP server (https://mailu.io/) in containers inside Openshift Cluster to send notifications for our clients and employees. It’s customer requirement to use own standalone cloud-agnostic SMTP server. This server has an authentication and is not accessible from Internet to connect and send emails.

All openshift cluster nodes have one common NAT gateway (<NAT gateway resource ID or ARN>) with EIP <your Elastic IP address>. So could you please remove email sending limitation from EIP <your Elastic IP address> assigned to NAT gateway?

Elastic IP address - optional

IP адреса платформенного NAT Gateway

Reverse DNS record - optional

Залишити пустим

4. Перевірка правильності відправлених email за допомогою сервісу apptoolbox

Перейдіть на сайт сервіса apptoolbox та натисніть Next step.

Ви отримаєте знегеровану email адресу, куди треба відправити лист з платформенного SMTP-сервера.

Отримана поштова адреса для перевірки
Figure 4. Отримана поштова адреса для перевірки

Щоб відправити email, перейдіть у веб-інтерфейс користувача доступний за адресою https://mail.<DNS_WILDCARD>/ . Пройдіть авторизацію.

У боковому меню ліворуч натисніть Compose щоб створити новий лист. У поле To введіть згенеровану адресу, поле Subject та тіло листа може мати будь-який текст.

Створення тестового email
Figure 5. Створення тестового email

Відправте email та поверніться на сайт. Через декілька секунд лист буде доставлено та ви отримаєте відповідь від сервіса. У випадку правильного налаштування відповідь має виглядати так:

Результат перевірки
Figure 6. Результат перевірки