Esta es una pregunta bastante larga con una larga lista de cosas probadas y tribulaciones, así que tengan paciencia conmigo. El resumen es este.
- Puedo transmitir correos electrónicos desde ubuntu a través de office365 usando postfix; La configuración funciona.
- 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
, bravo
y 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.com
realicé el ejercicio de registrar todas las entradas DNS apropiadas para que Office365 reconociera que era de mi propiedad plaything.company.com
y 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 alpha
y
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 bravo
la 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í:
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.
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 plaything
como 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 plaything
envía correos electrónicos como [email protected]
, deberá ajustar myhostname
y/o myorigin
eliminar la relayhost
configuración. En este caso, plaything
entregaría todo el correo directamente, con todos los pros y los contras, como la reputación del servidor de correo, etc.