Retransmissão do Postfix para o Office365


8

Estou tentando configurar um servidor Postfix em uma caixa Linux para retransmitir todos os emails para o servidor de email Office365 (Exchange, hospedado pela Microsoft), mas continuo recebendo um erro em relação ao endereço de envio:

BB338140DC1: to = relay = pod51010.outlook.com [157.56.234.118]: 587, atraso = 7,6, atrasos = 0,01 / 0 / 2,5 / 5,1, dsn = 5,7.1, status = rejeitado (host pod51010.outlook.com [ 157.56.234.118] disse: 550 5.7.1 O cliente não tem permissão para enviar como remetente (em resposta ao final do comando DATA))

O Office 365 exige que o endereço de envio no cabeçalho MAIL FROM e From: seja o mesmo que o endereço usado para autenticação. Eu tentei de tudo que consigo pensar na configuração para fazer isso funcionar. Minhaspostconf -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

Além disso, sasl_passwdé definido com as credenciais corretas (as testou usando swaks várias vezes.) A autenticação funciona e envia a mensagem quando os cabeçalhos from estão corretos (também testados usando swaks , que funciona)

Os e-mails são provenientes do PHP, então eu também tentei alterar o caminho do sendmail php.inipara passar o endereço correto via -f

Portanto, por algum motivo, os emails provenientes de www-data e root não terão os campos from reescritos para satisfação do Office 365 e não enviarão a mensagem.

Algum guru postfix por aí que possa me ajudar a configurar esse relé?

Respostas:


3

Apenas no caso de alguém se deparar com isso mais tarde. Finalmente recebi uma retransmissão de email adequada. Os problemas tinham a ver com o uso de uma versão mais antiga do postfix, que formatava o elemento "FROM" no envelope de uma maneira que o Office 365 não gostava. A atualização do Postfix para 2.9 ou superior (e usando uma configuração como a acima) resolveu o problema.


Passei os últimos 3 dias tentando definir esse relé com sendmail, ssmtp e agora postfix. Você pode me explicar um pouco mais a fundo o seu remetente_canônico? É necessário que este relé funcione? Com a minha configuração eu receboJan 9 11:03:11 isvahlrtk01 postfix/smtp[12841]: connect to pod51017.outlook.com[157.56.250.182]:587: Connection timed out
Rhyuk

onde você conseguiu o smtp_tls_CAfile para outlook.com?
pjz

Eu nunca precisei, ele funciona bem com o que vem com o servidor Ubuntu.
woodsbw

2

Solução:

  1. Não envie emails para o Office365 como usuário do seu domínio de email hospedado no Office365. Use um subdomínio, por exemplo, endereço@serviços.meudominio.com em vez de endereço@meudominio.com. Não faria mal configurar um registro SPF para services.mydomain.com ou o que você decidir usar.

  2. Não se autentique em mail.messaging.microsoft.com como um usuário do Office365. Basta conectar-se à porta 25 e entregar o correio ao seu domínio, como faria qualquer agente SMTP estrangeiro.


Justo. Eu estava esperando para obter toda a nossa correspondência passando por um ponto central ... mas depois de passar 12 horas tentando começar este trabalho de revezamento, eu vou levá-lo :)
woodsbw

0

Descobri que alguns módulos de autenticação SASL estavam ausentes. O seguinte foi corrigido:

yum install cyrus-sasl-plain  cyrus-sasl-scram cyrus-sasl-md5  cyrus-sasl-ntlm

( o módulo simples provavelmente foi suficiente)

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.