enviar correo desde la terminal de Linux en una línea [cerrado]

148

Sé que hay un comando mailen Linux para enviar correos electrónicos a través de la línea de comandos. Sin embargo, ¿cómo puedo enviar un correo electrónico simple con una línea desde la terminal?

Por ejemplo:

mail [email protected] [subject] [body]

¿Y ha enviado el correo electrónico sin ninguna confirmación o aviso al usuario?

La razón es que quiero enviarme un breve mensaje por correo electrónico cuando ocurre un evento específico en un javaprograma. La idea es que usaré Runtime.getRuntime()... etc. para enviar mail commanddesde mi javaprograma.

Solía cronhacer algo similar en el pasado, pero la implementación actual no lo usa cron, así que necesito probar esto en su lugar.

cHam
fuente
Use bulk mail CLI, una herramienta eficiente y poderosa para enviar correos electrónicos dinámicos a una lista de correo con un simple comando bulkmail mail:! Realice un marketing por correo electrónico rápido, mini y sin complicaciones con esta herramienta pequeña pero poderosa 💌 bulkmail.now.sh
Kumar Abhirup

Respuestas:

209

El correo puede representar bastantes programas en un sistema Linux. Lo que quieres detrás es sendmail o postfix . Recomiendo este último.

Puede instalarlo a través de su administrador de paquetes favorito. Luego debe configurarlo, y una vez que lo haya hecho, puede enviar un correo electrónico como este:

 echo "My message" | mail -s subject [email protected]

Vea el manual para más información.

En cuanto a la configuración de postfix, hay muchos artículos en Internet sobre cómo hacerlo. A menos que esté en un servidor público con un dominio registrado, generalmente desea reenviar el correo electrónico a un servidor SMTP desde el que pueda enviar correos electrónicos.

Para gmail, por ejemplo, siga http://rtcamp.com/tutorials/linux/ubuntu-postfix-gmail-smtp/ o cualquier otro tutorial similar.

PSkocik
fuente
44
Postfix es potente, pero si solo necesita enviar un correo electrónico, intente "ssmtp". Este paquete es más pequeño y no ejecuta un demonio como postfix. Es compatible con protocolos seguros y funciona con gmail.
oᴉɹǝɥɔ
66
"El programa 'mail' no está instalado actualmente. Puede instalarlo escribiendo: apt-get install mailutils"
Tom
Más ligero: paquetes nullmailerplus bsd-mailx. Suficiente para la mayoría de las estaciones de trabajo :) Y como nullmailerincluye una sendmailinterfaz, incluso puede omitir el bsd-mailxpaquete y utilizar el enfoque de Hengjie .
Izzy
@ oᴉɹǝɥɔ ssmtpestá en desuso. Usar en su msmtplugar.
Matt M.
32
echo "Subject: test" | /usr/sbin/sendmail [email protected]

Esto le permite hacerlo dentro de una línea de comando sin tener que repetir un archivo de texto. Esta respuesta se basa en la respuesta de @ mti2935. Entonces el crédito va allí.

Hengjie
fuente
2
Solo para agregar a la respuesta para el asunto y el cuerpo: echo -e "Asunto: prueba \ n \ n Contenido del cuerpo aquí \ n" | sendmail [email protected]
emvidi
13

También puedes usar sendmail:

/usr/sbin/sendmail [email protected] < /file/to/send
mti2935
fuente
Nota: Tengo Postfix + S-Nail. Esto es lo que funcionó para mí. Primero usé la respuesta "Rohit Gupta" y descargué las utilidades de correo, luego hice la suya y todo funcionó.
Mohammed Baashar
13

Para usuarios de Ubuntu: Primero necesitas instalar mailutils

sudo apt-get install mailutils

Configure un servidor de correo electrónico, si está utilizando gmail o smtp. siga este enlace . luego use este comando para enviar correos electrónicos.

echo "this is a test mail" | mail -s "Subject of mail" [email protected]

En caso de que estés usando gmail y sigas recibiendo algún error de autenticación, entonces debes cambiar la configuración de gmail:

Active Access para aplicaciones menos seguras desde aquí

Rohit Gupta
fuente
-3

Envío de correo simple:

$ mail -s "test message from centos" [email protected]
hello from centos linux command line

Ctrl+ Dpara terminar

abhilash
fuente
2
él está pidiendo el comando en línea.
Rohit Gupta