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 user@gmail.com [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.


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 user@gmail.com

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.


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 user@domain.com

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í.


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 user@domain.com
emvidi

13

También puedes usar sendmail:

/usr/sbin/sendmail user@domain.com < /file/to/send

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" username@domain.com

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í



-3

Envío de correo simple:

$ mail -s "test message from centos" recipient@example.com
hello from centos linux command line

Ctrl+ Dpara terminar


2
él está pidiendo el comando en línea.
Rohit Gupta
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.