У меня есть веб-приложение, которое используется в качестве клиента веб-почты для обмена. Я могу получать электронные письма с сервера обмена через IMAP, но проблема заключается в отправке писем.
Приложение использует клиент MSMTP для отправки писем, и я установил локальный почтовый сервер postfix для ретрансляции всех писем для обмена, как описано в сообщении:
, и я также добавил коннектор приема Frontend по обмену на практический IP-адрес постфиксного сервера.
Когда я отправляю тестовое электронное письмо на 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
.