Mientras trabaja con la línea de comandos, hay momentos en los que puede querer enviar manualmente un correo electrónico para comunicar información de una sola línea, decir un comando complejo o una nota importante para usted o un amigo. Normalmente, eso requiere que abra un navegador web, inicie sesión en su cuenta de correo electrónico, enmarque un correo electrónico que contenga la información requerida y luego envíelo.
Es un proceso demasiado largo para una cosa pequeña, ¿no? ¿Qué pasaría si pudieras hacer eso desde la propia línea de comandos? Sí, es posible, y ya hemos discutido un par de formas de hacerlo en Linux. En este artículo, discutiremos tres formas más de enviar correos electrónicos desde la línea de comandos en Linux.
Enviar correo
Sendmail, como sabrás, es el servidor SMTP clásico del mundo de UNIX. Por lo general, viene preinstalado en muchas distribuciones de Linux, pero si ese no es el caso con su caja de Linux, puede instalarlo fácilmente desde repositorios estándar. Por ejemplo, los usuarios de sistemas basados en Debian, como Ubuntu, pueden descargarlo e instalarlo con el siguiente comando:
sudo apt-get install mailutils
Una vez instalado, puede enviar un correo electrónico fácil y rápidamente usando el sendmail
dominio. Aquí hay un ejemplo:
echo "This is a test email again"| sendmail [receivers-email-address]
El comando anterior envía un correo electrónico que contiene el texto «Este es un correo electrónico de prueba nuevamente» a «[receivers-email-address]” (asegúrese de reemplazarlo, incluidos los corchetes, con la dirección de correo electrónico real del destinatario].
Cuando usé mi dirección de correo electrónico en el comando anterior, recibí el siguiente correo electrónico:
Como en mi caso, el correo electrónico podría aterrizar en su carpeta de correo no deseado, así que asegúrese de verificar allí.
El comando que acabamos de usar contenía solo el cuerpo del correo electrónico. También puede agregar más detalles como asunto, origen y más. Por ejemplo, el siguiente comando contiene estos campos adicionales y se puede ejecutar como un script:
echo "From: me@xyz.com To: himanshuz.chd@gmail.com Subject: Test HTML e-mail This is a test email."| sendmail -t
Aquí está la instantánea del correo electrónico que recibí cuando se ejecutó el comando anterior:
Telnet
También puede usar el comando Telnet para enviar un correo electrónico desde la línea de comandos. Para hacerlo, ejecute los siguientes comandos (asegúrese de reemplazar «[senders-email-address]» y «[receivers-email-address]” con la dirección de correo electrónico del remitente y del destinatario, respectivamente):
telnet localhost smtp ehlo gmail.com mail from: [senders-email-address] rcpt to: [receivers-email-address] data
En este punto, debería ver un mensaje en el que debe ingresar el cuerpo del correo electrónico y asegurarse de que el mensaje termine con una nueva línea seguida de un punto (.). Una vez hecho esto, presione enter para enviar el correo electrónico y luego escriba quit
para salir de la aplicación.
En mi caso, recibí el siguiente correo:
Ssmtp
SSMTP es una herramienta que envía correos electrónicos desde una computadora local a un host de correo configurado (mailhub). Los usuarios de Debian pueden descargar e instalar el programa usando el siguiente comando:
sudo apt-get install ssmtp
Una vez instalado, abra el /etc/ssmtp/ssmtp.conf
y edítelo para asegurarse de que contiene la siguiente información:
mailhub=smtp.gmail.com:587 UseSTARTTLS=YES AuthUser=[senders-email-address] AuthPass=[senders-email-login-password] TLS_CA_File=/etc/pki/tls/certs/ca-bundle.crt
Como siempre, asegúrese de reemplazar “[senders-email-address]» y «[senders-email-login-password]” con valores apropiados. Ahora, para enviar un correo electrónico usando ssmtp
use el siguiente comando:
ssmtp [receivers-email-address] Subject: [subject-line-here] [Body of email]
Nuevamente, reemplace “[receivers-email-address]”, “[subject-line-here]», y «[Body of email]” con los valores apropiados y envíe el correo electrónico presionando “Ctrl + D”.
Si recibe el siguiente error,
ssmtp: Authorization failed (534 5.7.9 https://support.google.com/accounts/bin/answer.py?answer=185833 bk8sm8525341pad.28 - gsmtp)
entonces eso es probable porque Gmail no está tratando ssmtp
como una aplicación segura. Para deshacerse de este error, debe cambiar una configuración particular en su cuenta de Gmail; para obtener más información sobre cómo hacerlo y sus riesgos potenciales, consulte esto Página de soporte de Google.
Cuando ejecuté el comando anterior, recibí el siguiente correo electrónico:
Conclusión
Con esto, hemos discutido un total de 5 herramientas de línea de comandos que puede usar para enviar correo electrónico desde la línea de comandos de Linux. Un punto importante que vale la pena mencionar aquí es que además de usar estos comandos para enviar correos electrónicos manualmente desde la línea de comandos, también puede usarlos para generar correos electrónicos de notificación desde scripts.
¿Alguna vez has usado alguna de estas herramientas? ¿Cómo fue tu experiencia? Comparta sus pensamientos en los comentarios a continuación.