Пересылка писем с постфикса на сервер обмена?
У меня есть веб-приложение, которое используется в качестве клиента веб-почты для обмена. Я могу получать почту с сервера обмена через 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))
Я использую аутентифицированную ретрансляцию, поэтому мой постфиксный сервер подключается как конкретный пользователь. Какие разрешения мне нужно добавить этому пользователю, чтобы иметь возможность передавать электронную почту для обмена?
1 ответ
При использовании сервера ретрансляции, такого как postfix, для связи с exchange, вы должны настроить postfix с пользователем для аутентификации с exchange для отправки электронной почты. Вы, кажется, уже сделали этот шаг. Однако для того, чтобы аутентификация имела какое-либо значение, у того пользователя, которого вы отправляете, также должны быть разрешения SendAs для любого адреса электронной почты, который используется для отправки почты из вашего веб-приложения. Вы можете добавить это разрешение в powershell, используя Add-RecipientPermission
командлет