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 [email protected]
root [email protected]
www-data@localhost [email protected]
root@localhost [email protected]
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.ini
para 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é?
fonte
Jan 9 11:03:11 isvahlrtk01 postfix/smtp[12841]: connect to pod51017.outlook.com[157.56.250.182]:587: Connection timed out
Solução:
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ç[email protected]. Não faria mal configurar um registro SPF para services.mydomain.com ou o que você decidir usar.
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.
fonte
Descobri que alguns módulos de autenticação SASL estavam ausentes. O seguinte foi corrigido:
( o módulo simples provavelmente foi suficiente)
fonte