GNU/Linux >> Tutoriales Linux >  >> Linux

Enviar correo desde la línea de comandos con un servidor smtp externo en Linux

Enviar correo a través de servidores SMTP

El comando de correo predeterminado en la terminal de Linux utiliza el servidor smtp local (mta) en el puerto 25 para enviar correos electrónicos. Sin embargo, a veces necesita especificar un servidor smtp externo para usar para enviar correos.

Por ejemplo, acaba de configurar un servidor smtp, como Postfix o Exim, entonces querrá probarlo para verificar si está recibiendo y transmitiendo correos electrónicos correctamente o no.

Poder enviar correos desde la línea de comandos utilizando este servidor smtp externo es rápido en lugar de tener que configurar un cliente de correo como Thunderbird en su máquina local.

Hay 2 utilidades de línea de comando llamadas mailx y swaks que se pueden usar para enviar correos usando un servidor smtp externo. Estos son bastante útiles cuando necesita enviar correos electrónicos desde un script bash de manera automática.

1. comando mailx

El comando mailx está disponible en muchos paquetes diferentes, como mailutils, heirloom-mailx, etc. Primero debe usar el comando aptitude para buscar el paquete mailx disponible para su sistema. Aquí hay un ejemplo

$ aptitude search mailx
p   bsd-mailx                                                              - simple mail user agent
p   bsd-mailx:i386                                                         - simple mail user agent
v   mailx                                                                  -
v   mailx:i386

Para averiguar qué comando mailx está usando su sistema, ejecute el comando readlink. Aquí hay una salida de muestra.

$ readlink -f /usr/bin/mailx
/usr/bin/bsd-mailx
$ readlink -f /usr/bin/mailx
/usr/bin/mail.mailutils

No todas las variantes de mailx pueden usar servidores smtp externos para enviar correo. Solo el que viene del paquete s-nail (tirado por heirloom-mailx) puede hacerlo.

Usaremos heirloom-mailx ya que permite especificar los detalles de la conexión smtp en un solo comando y enviar un correo electrónico rápidamente.

$ sudo apt-get install heirloom-mailx

Ahora envíe un correo electrónico con un servidor smtp externo como este -

echo "This is the message body and contains the message" | mailx -v -r "[email protected]" -s "This is the subject" -S smtp="mail.example.com:587" -S smtp-use-starttls -S smtp-auth=login -S smtp-auth-user="[email protected]" -S smtp-auth-password="abc123" -S ssl-verify=ignore [email protected]

Aquí hay una versión paso a paso del mismo comando -

$ echo "This is the message body and contains the message" | mailx -v \
> -r "[email protected]" \
> -s "This is the subject" \
> -S smtp="mail.example.com:587" \
> -S smtp-use-starttls \
> -S smtp-auth=login \
> -S smtp-auth-user="[email protected]" \
> -S smtp-auth-password="abc123" \
> -S ssl-verify=ignore \
> [email protected]

Asegúrese de usar la configuración correcta, como el número de puerto, el mecanismo de autenticación, etc. El comando produciría una salida detallada que brinda detalles completos de la comunicación smtp que se produce detrás, lo que facilita la prueba y la depuración.

Nota: El paquete heirloom-mailx se eliminó a partir de la versión 18 de Ubuntu. Ahora tienes que instalar el paquete s-nail.

$ sudo apt-get install s-nail

El comando s-nail es el mismo que el comando heirloom mailx. Solo el nombre es diferente. Ejecute el mismo comando anterior reemplazando mailx con s-nail y debería funcionar.

Si está utilizando la última versión de s-nail (14.9.x), la sintaxis para especificar los detalles del servidor smtp puede ser ligeramente diferente. Consulte el último manual aquí

http://manpages.ubuntu.com/manpages/bionic/en/man1/s-nail.1.html

Consulte la publicación anterior sobre el comando mailx aquí -
9 ejemplos de comandos mail/mailx para enviar correos electrónicos desde la línea de comandos en Linux

2. Comando Swaks

Swaks (navaja suiza para SMTP) es una herramienta de línea de comandos simple que se puede usar para probar servidores smtp para verificar si están haciendo su trabajo correctamente. También es compatible con TLS.

Instale swaks en Ubuntu/Debian con el siguiente comando

$ sudo apt-get install swaks

Ahora envía el correo electrónico

$ echo "This is the message body" | swaks --to [email protected] --from "[email protected]" --server mail.example.com --auth LOGIN --auth-user "[email protected]" --auth-password "abc123" -tls

Todas las opciones se explican por sí mismas. La opción "--server" especifica el servidor SMTP externo a usar, "--auth" especifica el tipo de autenticación. La opción "-tls" le dice a los swaks que usen STARTTLS.

Consulta la página del manual para ver más opciones.


Linux
  1. 4 formas de enviar archivos adjuntos de correo electrónico desde la línea de comandos de Linux

  2. Envíe un correo electrónico desde la terminal o secuencia de comandos de Linux usando el comando de correo

  3. ¿Cómo enviar correo a través de un servidor SMTP externo usando el comando mailx en Linux?

  4. ¿Cómo enviar un correo electrónico Html usando el comando 'mail' de Linux?

  5. ¿Cómo enviar un mensaje de correo sin procesar en Linux?

Cómo enviar un correo electrónico con un archivo adjunto desde la línea de comandos

Comando mailx en linux:enviar y recibir correo de Internet

Enviar correo electrónico en Linux desde la línea de comandos

Cómo monitorear el estado del servidor Linux con herramientas de línea de comandos

Linux/UNIX:Cómo enviar correos con archivos adjuntos usando el comando mailx

Mutt, Mail y Telnet:envíe correos electrónicos desde la línea de comando o terminal de Linux