Здравствуйте!
Есть несколько почтовых серверов типа `mail{N}.example.com` (к ним доступа у меня нет) и пользователи с почтовыми клиентами и их аккаунтами. Нужно между пользователями и серверами поставить прокси-балансер `mb.example.com` (заменой адреса сервера на клиентах).
Я использовал
вот это решение на nginx + auth_http. Однако, сложность в том, что на бекендах разные форматы логинов (IAFedorov, ia_fedorov, и т.п.), но я не вижу в статье ничего про логин – только ip/port.
В добавок, при попытке отправки письма я получаю ответ "550 relay access denied - please authenticate".
Что я делаю не так?
Конфиг nginx:
mail {
auth_http mb.example.com:80;
server {
server_name mb.example.com;
listen 25;
protocol smtp;
proxy on;
proxy_pass_error_message on;
smtp_auth login plain;
xclient off;
}
}
Тестовый auth-скрипт (с валидными данными одного из серверов):
<?php
header('Auth-Status: OK');
header('Auth-Server: 11.22.33.44');
header('Auth-Port: 25');
header('Auth-User: some_username');
header('Auth-Pass: some_password');
Update. Так же, я пробовал настроить
SMTP relay с помощью postfix.
Заменив все настройки с Mailgun на те, что предоставлены моими серверами – локально отправить письмо удалось. Однако, при отправке "извне" с указанием моего сервера, получил ошибку "454 4.7.1 Relay access denied". В логах запись:
Sep 26 09:55:42 username postfix/smtpd[7865]: NOQUEUE: reject: RCPT from unknown[11.22.33.44]: 454 4.7.1 <receiver@example.com>: Relay access denied; from=<sender@example.com> to=<receiver@example.com> proto=ESMTP helo=<[127.0.0.1]>