У меня есть веб-приложение, которое используется в качестве почтового клиента для обмена. Я могу получать электронные письма с сервера обмена через IMAP, но проблема заключается в отправке писем.
Приложение использует клиент MSMTP для отправки писем, и я установил локальный почтовый сервер postfix для ретрансляции всех писем для обмена, как описано в сообщении:
и я также добавил коннектор получения Frontend для обмена на практический IP-адрес сервера postfix.
Когда я отправляю тестовое письмо на postfix через msmtp, я всегда получаю:
websrv1 postfix/smtp[36849]: 8618411EF7F: to=<mail@domain.com>, relay=mail.domain.com[192.168.10.2]:587, delay=5, delays=0.01/0/0.02/5, dsn=5.7.1, status=bounced (host mail.domain.com[192.168.10.2] said: 530 5.7.1 Client was not authenticated (in reply to MAIL FROM command))
Итак, что мне нужно сделать, чтобы это сработало?
Конфигурация клиента msmtp:
account default
logfile /home/app/msmtp_default.log
host localhost
port 25
from mail@domain.com
keepbcc off
auth off
tls off
tls_certcheck off
Версия сервера Exchange - 2016.
ОБНОВИТЬ
Я сделал аутентификацию, теперь я получаю еще одну ошибку от сервера обмена:
5.7.1 Client does not have permissions to send as this sender (in reply to end of DATA command))
Я использую ретранслятор с аутентификацией, поэтому мой постфиксный сервер подключается как конкретный пользователь. Какие разрешения мне нужно добавить этому пользователю, чтобы иметь возможность ретранслировать электронные письма для обмена?
При использовании сервера ретрансляции, такого как postfix, для связи с Exchange, вы должны настроить postfix с пользователем для аутентификации с помощью exchange для отправки электронной почты. Похоже, вы уже сделали этот шаг. Однако для того, чтобы аутентификация имела какое-либо значение, этот пользователь, которого вы отправляете, также должен иметь разрешения SendAs для любого адреса электронной почты, который используется для отправки почты из вашего веб-приложения. Вы можете добавить это разрешение в PowerShell, используя Add-RecipientPermission
командлет.