Intento enviar correo electrónico desde mi servidor a través de Postfix, pero no consigo que funcione. Estoy usando un servidor SMTP externo como host de retransmisión. Esta es la parte relevante de /etc/postfix/main.cf
:
smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
relayhost = [mail.myISP.nl]:submission
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = loopback-only
inet_protocols = all
smtp_generic_maps = hash:/etc/postfix/generic
smtp_sasl_auth_enable = yes
smtp_sasl_security_options = noanonymous
smtp_sasl_password_maps = hash:/etc/postfix/sasl_password
debug_peer_list=mail.myISP.nl
debug_peer_level=5
Instalé libsasl2-2
y .libsasl2-modules
sasl2-bin
En /etc/postfix/sasl_password
, ingresé credenciales válidas:
[mail.myISP.nl]:587 myuserid:mypassword
después de lo cual ejecuté el comando para convertir el archivo de texto en un .db
archivo:
postmap /etc/postfix/sasl_password
y recargué la configuración de Postfix:
sudo systemctl reload postfix
Sin embargo, en realidad no se envía ningún correo. Ejecuté un volcado de TCP con el siguiente comando:
echo "This is a test" | mail -s "Testing" [email protected]
Y el resultado fue el siguiente intercambio con el servidor remoto:
(S) srv17610.myISP.nl ESMTP Exim 4.86.2 Wed, 28 Dec 2016 11:06:24 +0100
(C) EHLO hostname
(S) 250-srv17610.myISP.nl Hello my.canonical.name.nl [xxx.xxx.xxx.xxx]
(S) 250-SIZE 20971520
(S) 250-8BITMIME
(S) 250-PIPELINING
(S) 250-AUTH PLAIN LOGIN
(S) 250-STARTTLS
(S) 250 HELP
(C) MAIL FROM:<[email protected]> SIZE=310
(C) RCPT TO:<[email protected]>
(C) DATA
(S) 250 OK
(S) 550 relay not permitted, authentication required
(S) 503-All RCPT commands were rejected with this error:
(S) 503-relay not permitted, authentication required
(S) 503 Valid RCPT command must precede DATA
(C) RSET
(C) QUIT
(S) 250 Reset OK
(S) 221 srv17610.myISP.nl closing
Siendo (C) Postfix y (S) el servidor remoto. Puede ver que no emite un comando AUTH, no ofrece credenciales y, por lo tanto, el correo se rechaza. Simplemente /var/log/mail.log
dice que se ha enviado el correo. ¿Qué sale mal?
Respuesta1
Su configuración parece legítima, pero postfix requiere que su archivo smtp_sasl_password_maps se almacene de manera optimizada, no en texto claro.
si no tienes dicho archivo
ejecutando el comando:
mapa de correos /etc/postfix/sasl_password
generará un sasl_password.db
recarga de postfix de servicio
para aplicar cambios