¿Cómo configuro exim4 para enviar correo a través de un servidor de correo ssl smtp protegido con contraseña?

19

Me gustaría que mis cronjobs puedan enviar correo desde la computadora de mi casa. Mis servidores configuran exim4 de esta manera:

dc_eximconfig_configtype='internet'
dc_other_hostnames=''
dc_local_interfaces='127.0.0.1'
dc_readhost=''
dc_relay_domains=''
dc_minimaldns='false'
dc_relay_nets=''
dc_smarthost=''
CFILEMODE='644'
dc_use_split_config='false'
dc_hide_mailname=''
dc_mailname_in_oh='true'
dc_localdelivery='maildir_home'

Sin embargo, en casa, mi ISP bloquea el correo enviado directamente a través de un firewall. Tengo un servidor ssl smtp protegido con contraseña por el que podría enrutar el correo, pero no he tenido éxito en descubrir cómo configurar exim4 para que esto funcione. Espero que alguien pueda darme un ejemplo de configuración donde pueda enchufar el nombre de host, el nombre de usuario, la contraseña y "usar ssl" para que envíe correo a través de un único servidor smtp.

Stephen Ostermiller
fuente

Respuestas:

25

Finalmente encontré un conjunto detallado de instrucciones de Tony Scelfo que realmente funcionan . Parece que debe usar la seguridad de la capa de transporte (TLS) en el puerto 587. No he conseguido que SSL SMTP funcione.

Primero ejecute sudo dpkg-reconfigure exim4-configy use estas opciones de configuración:

  • Tipo general de configuración de correo: correo enviado por smarthost; recibido a través de SMTP o fetchmail
  • Nombre de correo del sistema: <su nombre de host>
  • Dirección IP para escuchar las conexiones SMTP entrantes: 127.0.0.1
  • Otros destinos para los que se acepta correo: <su nombre de host>
  • Máquinas para retransmitir correo para: <dejar esto en blanco>
  • Dirección IP o nombre de host del smarthost saliente: mail.example.com::587
  • ¿Ocultar el nombre del correo local en el correo saliente?
    • Sí, todo el correo saliente parecerá provenir de su cuenta de Gmail
    • No: el correo enviado con un encabezado de nombre de remitente válido mantendrá el nombre del remitente
  • ¿Mantener el número de consultas DNS mínimo (Dial-on-Demand)? No
  • Método de entrega para correo local: <elija el que prefiera>
  • ¿Dividir el archivo de configuración en archivos pequeños? Sí (debe editar uno de los archivos a continuación)

Luego, ejecute sudo vi /etc/exim4/passwd.clienty agregue las siguientes líneas para su servidor de correo, y cualquier alias que tenga (encontrado nslookup). Sustituya <dirección de correo electrónico> y <contraseña> con la cuenta por la que desea enrutar el correo):

mail.example.com:<email address>:<password>
mail.yourhosting.provider:<email address>:<password>

Una vez que edite el passwd.clientarchivo, ejecute sudo update-exim4.conflo que integrará sus cambios en su configuración de Exim4.

Ejecute sudo /etc/init.d/exim4 restarty asegúrese de que el servicio se detiene e inicia correctamente. Si el servicio no puede reiniciarse, probablemente algo salió mal cuando editó el passwd.clientarchivo.

Si Exim4 se reinicia, continúe y ejecute sudo tail -f /var/log/exim4/mainlogpara ver los registros de correo. En una ventana diferente, envíe un correo electrónico desde su sistema y asegúrese de ver un registro R=smarthost T=remote_smtp_smarthost H=gmail-smtp-msa.l.google.com ... X=TLS-1.0:RSA_ARCFOUR_MD5:16en él. Esto X=TLSsignifica que el correo se envía con la seguridad de la capa de transporte, que es lo que desea.

Stephen Ostermiller
fuente
1
No es necesario "dividir el archivo de configuración en archivos pequeños" ya que /etc/exim4/passwd.clientes un archivo separado de cualquier manera.
Ejecute CMD el
Tenga en cuenta que especificar el puerto SMTP puede no funcionar con todos los servidores de correo. Pero exim4usará TLS de todos modos con el puerto SMTP predeterminado si el servidor de correo lo ofrece. Se puede verificar mirando la X=información en/var/log/exim4/mainlog
Ejecute CMD el
Por favor, solo apúntame a la dirección correcta. No quiero duplicar alguna pregunta. ¿Qué sucede si quiero que todos los usuarios establezcan sus propias contraseñas stmp en sus directorios HOME? ¿Exim4 buscará varios passwd.client? Tx
Dr Beco
Eso me parece una nueva pregunta
Stephen Ostermiller,
@DrBeco Si tiene una pregunta específica que no es específica para esta pregunta o respuesta, hágala como una pregunta .
Thomas Ward
5

Si su ISP requiere autenticación, debe configurar dc_smarthost con el nombre de host del servidor de correo y la combinación de puertos que usa su ISP, y dc_eximconfig_configtype en "smarthost" de esta manera:

dc_eximconfig_configtype='smarthost'
dc_smarthost='mail.example.com::587'

Luego, puede agregar sus credenciales para que les /etc/exim4/passwd.clientguste:

mail.example.com:username:password

Luego, cualquier correo enviado a través de su servidor exim4 será enrutado a través de este servidor de correo.

dobey
fuente
10
En update-exim4.conf puse dos puntos para la línea smarthost, como en dc_smarthost='mail.example.com::587'y ¡marcó la diferencia! Finalmente comenzó a enviar correo a través.
Marcos
+1 Este es un error muy común que he visto en muchos tutoriales.
TwystO
4

Este trabajo es muy bueno para mi. Mi ISP usa el puerto 25 y dc_smarthost='myisp.mail.server:25' después de cambiar estos archivos y emitir comandos:

  1. update-exim4.conf
  2. /etc/init.d/exim4 restart

Después de hacer una prueba para enviar un correo electrónico a través de la muestra clásica de exim4 como:

echo "content of mail body with pt-br chars ação avião língua é essa em 1609." | mail -s "Confirmar 16DOM" my-user-in-isp@my-domain-url

Y estos fluyen bien a la bandeja de entrada de my-userin my-domain-url.

gsavix
fuente