Estoy tratando de obtener informes por correo electrónico de nuestras instancias de AWS EC2. Estamos utilizando Exchange Online (parte de los Servicios en línea de Microsoft). He configurado una cuenta de usuario específicamente para la retransmisión SMTP , y he configurado Postfix para cumplir con todos los requisitos para retransmitir mensajes a través de este servidor. Sin embargo, el servidor SMTP de Exchange Online rechazará los mensajes a menos que la dirección De coincida exactamente con la dirección de autenticación (el mensaje de error es 550 5.7.1 Client does not have permissions to send as this sender
).
Con una configuración cuidadosa, puedo configurar mis servicios para enviar como este usuario. Pero no soy un gran admirador de tener cuidado: prefiero que Postfix fuerce el problema. ¿Hay alguna forma de hacer esto?
fuente
sender_canonical_maps
postfix no puede salvar el correo rechazado a cola de impresión local y en su lugar trata de enviarlo a través del relé infinitamentepostconf -e sender_canonical_classes=envelope_sender,header_sender
postconf -e sender_canonical_maps=regexp:/etc/postfix/sender_canonical_maps
postconf -e smtp_header_checks=regexp:/etc/postfix/header_check
(Nota: las direcciones FROM y TO coinciden para el reemplazo de cualquiera de las tablas genéricas y canónicas).
El uso de la tabla canónica cuando el servidor recibe el correo ya se explican otras respuestas.
Puede reescribir direcciones FROM cuando el correo se envía desde el servidor utilizando
smtp_generic_maps
.De acuerdo con la documentación de postfix :
Entonces hazlo:
Referencias
fuente
hash:
aregexp:
main.cf y usar líneas como/foo.*@localdomain.local/ [email protected]
en el mapa genérico. Esto se explica en la página de manualActualización: Siguiendo el consejo de un amigo de TI, estoy ejecutando postfix en todos mis servidores, en lugar de crear un servidor de correo en la nube. Aquí está mi solución hasta ahora:
/etc/postfix/main.cf
/etc/postfix/sasl_passwd
/etc/postfix/generic
/etc/aliases
/etc/passwd
Cosas por las que estoy feliz:
alias
indica quién lo recibe.[email protected]
, por lo que pasa a través del servidor SMTP en línea de MS.Cosas por las que no estoy contento:
passwd
truco del nombre no siempre funciona, y puede ser difícil determinar de qué servidor proviene un correo.warning: smtp.mail.microsoftonline.com[65.55.171.153] offered null AUTH mechanism list
(El servidor SMTP envía unaAUTH
lista nula antesSTARTTLS
, peroAUTH LOGIN
después).certificate verification failed for smtp.mail.microsoftonline.com: num=20:unable to get local issuer certificate
(Hay algunas opciones de configuración en torno a los certificados, pero no estoy seguro si la entrega del correo se rompe cuando se renueva el certificado)certificate verification failed for smtp.mail.microsoftonline.com: num=27:certificate not trusted
(Igual que # 2)Gracias a la comunidad serverfault por compartir opiniones sólidas sobre los servidores de correo.
fuente
Puede usar smtpd_sender_login_maps para especificar una lista de mapas: dirección del remitente - usuario.
Ejemplo:
/ etc / postfix / login-map:
Funciona para enviar, debería funcionar para retransmitir de la misma manera.
fuente
echo "This is a test" | /usr/sbin/sendmail [email protected]
todavía colas (y eventualmente relés) el correo como procedentes de[email protected]
Utilizo el mapeo canónico para reescribir la dirección de origen, como reescribir root @ app01 a [email protected].
fuente