Я пытаюсь настроить сервер Postfix на компьютере Linux, чтобы пересылать всю почту на наш почтовый сервер Office365 (Exchange, размещенный на Microsoft), но получаю сообщение об ошибке по адресу отправки:
BB338140DC1: to = relay = pod51010.outlook.com [157.56.234.118]: 587, задержка = 7,6, задержки = 0,01 / 0 / 2,5 / 5,1, DSN = 5,7,1, статус = отказов (хост pod51010.outlook.com [ 157.56.234.118] said: 550 5.7.1 Клиент не имеет разрешений для отправки в качестве этого отправителя (в ответ на завершение команды DATA))
Office 365 требует, чтобы адрес отправки в заголовках MAIL FROM и From: совпадал с адресом, используемым для аутентификации. Я перепробовал все, что могу придумать в конфиге, чтобы это заработало. мойpostconf -n:
append_dot_mydomain = no
biff = no
config_directory = /etc/postfix
debug_peer_list = 127.0.0.1
inet_interfaces = loopback-only
inet_protocols = all
mailbox_size_limit = 0
mydestination = xxxxx, localhost.localdomain, localhost
myhostname = localhost
mynetworks = 127.0.0.0/8
recipient_delimiter = +
relay_domains = our.doamin
relayhost = [pod51010.outlook.com]:587
sender_canonical_classes = envelope_sender
sender_canonical_maps = hash:/etc/postfix/sender_canonical
smtp_always_send_ehlo = yes
smtp_sasl_auth_enable = yes
smtp_sasl_mechanism_filter = login
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options =
smtp_tls_CAfile = /etc/postfix/cacert.pem
smtp_tls_loglevel = 1
smtp_tls_security_level = may
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtpd_use_tls = yes
/etc/postfix/sender_canonical
:
www-data address@mydomain.com
root address@mydomain.com
www-data@localhost address@mydomain.com
root@localhost address@mydomain.com
Кроме того, sasl_passwd
заданы правильные учетные данные (проверено их с использованием swaks несколько раз.) Проверка подлинности работает и отправляет сообщение, когда заголовки from верны (также проверяется с использованием swaks , что работает)
Письма приходят из PHP, поэтому я также попытался изменить путь sendmail, php.ini
чтобы использовать правильный адрес от адреса через -f
Поэтому, по какой-то причине, почта, приходящая с www-data и root , не переписывает поля from к удовольствию Office 365 и не будет отправлять сообщение.
Есть какие-нибудь постфиксные гуру, которые могут помочь мне настроить это реле?
источник
Jan 9 11:03:11 isvahlrtk01 postfix/smtp[12841]: connect to pod51017.outlook.com[157.56.250.182]:587: Connection timed out
Решение:
Не отправляйте почту на Office365 как пользователь с вашего почтового домена, размещенного на Office365. Вместо этого используйте поддомен, например, address@services.mydomain.com вместо address@mydomain.com. Не мешало бы установить запись SPF для services.mydomain.com или чего-либо еще, что вы решили использовать.
Не проходите аутентификацию на mail.messaging.microsoft.com как пользователь Office365. Просто подключитесь к порту 25 и доставьте почту на свой домен, как это сделал бы любой иностранный SMTP-агент.
источник
Я обнаружил, что некоторые модули аутентификации SASL отсутствовали. Следующее исправило это:
(достаточно простого модуля)
источник