Postfix retransmite todo el correo a través de problemas de Office365

Postfix retransmite todo el correo a través de problemas de Office365

Esta es una pregunta bastante larga con una larga lista de cosas probadas y tribulaciones, así que tengan paciencia conmigo. El resumen es este.

  1. Puedo transmitir correos electrónicos desde ubuntu a través de office365 usando postfix; La configuración funciona.
  2. Sólo funciona como uno de los usuarios; más específicamente, el usuario que se autentica en Office365 es el único "de" válido

Más detalles siguen. Tengo una máquina en la nube de Amazon en la que ejecuto varios trabajos y me gustaría que me envíen los estados por correo. Utilizo Office365 en el trabajo, así que quiero retransmitir correo a través de Office365. Estoy más familiarizado con postfix, así que lo usé como MTA.

La configuración es ubuntu 12.04LTS; He instalado postfix y mail-utils.

Para este ejemplo, déjame decir que mi empresa es " company.com" y la máquina en cuestión (a través de una IP elástica y una entrada DNS) se llama " plaything.company.com". El nombre de host está configurado en " plaything.company.com", al igual que/etc/mailname

En Plaything, tengo registrados los siguientes usuarios alpha, bravoy charlie.

Tengo los siguientes archivos de configuración.

alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
append_dot_mydomain = no
biff = no
directorio_config = /etc/postfix
inet_interfaces = todas
inet_protocols = ipv4
límite_tamaño_buzón = 0
midestino = juguete.empresa.com, localhost.empresa.com, localhost
minombredehost = juguete.empresa.com
misredes = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
miorigen = /etc/nombredecorreo
directorio_léame = no
delimitador_destinatario = +
host de retransmisión = [smtp.office365.com]:587
sender_canonical_maps = hash:/etc/postfix/sender_canonical
smtp_sasl_auth_enable = sí
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = no anónimo
smtp_sasl_tls_security_options = no anónimo
smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt
smtp_tls_session_cache_database = btree:${directorio_datos}/smtp_scache
smtp_use_tls = sí
smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
smtpd_tls_cert_file = /etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file = /etc/ssl/private/ssl-cert-snakeoil.key
smtpd_tls_session_cache_database = btree:${directorio_datos}/smtpd_scache
smtpd_use_tls = sí

Como se llama la máquina, plaything.company.comrealicé el ejercicio de registrar todas las entradas DNS apropiadas para que Office365 reconociera que era de mi propiedad plaything.company.comy me permitió crear un usuario llamado [email protected]en Office365.

En Office365, configuré [email protected]que tenía otra dirección de correo electrónico de [email protected].

Luego, hice el siguiente sender_canonical

[correo electrónico protegido] [correo electrónico protegido]

Creé un archivo sasl_passwd que dice:

smtp.office365.com [email protected]:123456password123456

digamos que la contraseña [email protected]es1234...456

Con toda esta configuración, inicie sesión como alphay

correo[correo electrónico protegido]
CC:
Asunto: prueba
prueba

y todo funciona de maravilla. el correo electrónico se envía mediante postfix, TLS funciona como un campeón, se autentica como daemon@...y[correo electrónico protegido]en Office365 recibe un mensaje de correo electrónico.

El problema surge al iniciar sesión en bravola máquina.

el remitente es [email protected]y office365 dice:

estado = rebotado (host smtp.office365.com [132.245.12.25] dijo:
550 5.7.1 El cliente no tiene permisos para enviar como
este remitente (en respuesta al final del comando DATOS))

Esto se debe a que estoy intentando enviar correo bravo@...y autenticarme con Office365 como daemon@.... La razón por la que funciona alpha@...es porque en Office365, lo configuro [email protected]con otra dirección de correo electrónico de [email protected].


EnRetransmisión Postfix a Office365,Miles Ericksonresponde a la pregunta así:

  1. No envíe correo a Office365 como usuario desde su dominio de correo electrónico alojado en Office365. Utilice un subdominio en su lugar, por ejemplo[correo electrónico protegido]en lugar de[correo electrónico protegido]. No estaría de más configurar un registro SPF para servicios.midominio.com o lo que decida utilizar.

  2. No se autentique en mail.messaging.microsoft.com como usuario de Office365. Simplemente conéctese al puerto 25 y entregue el correo a su dominio como lo haría cualquier agente SMTP extranjero.

Bien, hice el punto 1, tengo esos registros en DNS pero en su mayor parte no son relevantes una vez que Office365 reconoce que soy el propietario del dominio.

Aquí están esos registros:

Registros CNAME: - msoid.plaything.company.com - autodiscover.plaything.company.com

Registro MX: - plaything.company.com (plaything-company-com.mail.protection.outlook.com)

Registro TXT: - plaything.company.com (v=spf1 incluye: spf.protection.outlook.com -todos)

Probé el punto 2, pero no importa lo que haga, Office365 simplemente elimina la conexión con "no autenticado". Puedo probar incluso un simple telnet al puerto 25 e intentar enviar y no funciona.

250 BY2PR01CA007.outlook.office365.com Hello [54.221.245.236] 
530 5.7.1 Client was not authenticated 
Connection closed by foreign host.

¿Hay alguien que tenga este tipo de configuración funcionando en la que varios usuarios en una máquina Linux pueden retransmitir correo utilizando Postfix a través de Office365? Tiene que haber alguien haciendo esto que pueda decirme qué está mal con mi configuración...

Respuesta1

Creo que necesitas dar un paso atrás :)

Si ha iniciado sesión playthingcomo bravo, ¿realmente necesita que todo el correo enviado desde Plaything se envíe como [email protected]? Si no, simplemente envíe todo el correo como [email protected], consultePostfix en hosts sin un nombre de host de Internet real.

Si no puede aplicar esto, necesitaráMapas SASL dependientes del remitente. Agregará algo de complejidad a su configuración, por lo que realmente me esforzaría por evitarlo.

Por último, pero no menos importante, si playthingenvía correos electrónicos como [email protected], deberá ajustar myhostnamey/o myorigineliminar la relayhostconfiguración. En este caso, playthingentregaría todo el correo directamente, con todos los pros y los contras, como la reputación del servidor de correo, etc.

información relacionada