¿Cómo enviar correo desde la línea de comando?

194

¿Cómo enviar correos desde la línea de comando?

    
pregunta Olivier Lalonde 12.11.2010 - 21:27

15 respuestas

32

Intenta instalar El cliente de correo electrónico Mutt . Otra opción es usar emacs con gnus . Otras opciones disponibles también ... en mi humilde opinión, debe usar más detalles en sus preguntas, o varias respuestas diferentes a su pregunta que recibirá: -)

    
respondido por el crncosta 12.11.2010 - 21:46
143
  1. Instalar ssmtp :

    sudo apt-get install ssmtp
    
  2. Edite el archivo de configuración ssmtp:

    gksu gedit /etc/ssmtp/ssmtp.conf
    
  3. Agregue el siguiente texto:

    root=username@gmail.com
    mailhub=smtp.gmail.com:465
    rewriteDomain=gmail.com
    AuthUser=username
    AuthPass=password
    FromLineOverride=YES
    UseTLS=YES
    
  4. Ejecute ssmtp y proporcione la dirección de correo electrónico del destinatario:

    ssmtp recepient_name@gmail.com
    
  5. Proporcione los detalles del mensaje de la siguiente manera:

    To: recipient_name@gmail.com
    From: username@gmail.com
    Subject: Sent from a terminal!
    
    Your content goes here. Lorem ipsum dolor sit amet, consectetur adipisicing.
    (Notice the blank space between the subject and the body.)
    
  6. Presione Ctrl + D para enviar.

También puede colocar el texto en un archivo y enviarlo de la siguiente manera:

ssmtp recipient_name@gmail.com < filename.txt
    
respondido por el Sid 12.11.2010 - 22:32
84

La mayoría de las veces no debería necesitar configurar un servidor SMTP, simplemente puede usar mail desde la línea de comandos (si no está presente, instálelo con sudo apt-get install mailutils ). (O si está en un servidor donde se configura sendmail, etc.)

marco@dagobah:~$ mail -v marco.ceppi.use@gmail.com
Subject: Hello World!
This is an email to myself.

Hope all is well.
.
Cc: 

Finaliza los mensajes con un solo . en línea. Es entonces cuando mail le preguntará por Cc: ingrese la información (o deje en blanco) y mail luego imprimirá información adicional sobre lo que está intentando hacer, así como también detallará el proceso de conexión, transmisión y recibir datos del servidor de correo.

    
respondido por el Marco Ceppi 12.11.2010 - 23:52
44
apt-get install libio-socket-ssl-perl libnet-ssleay-perl sendemail

uso:

sendemail -f fromuser@gmail.com -t touser@domain.com -u subject -m "message" -s smtp.gmail.com:587 -o tls=yes -xu gmailaccount@gmail.com -xp gmailpassword 

Si no desea especificar su contraseña en la línea de comando (generalmente no es algo bueno que hacer), puede omitir ese parámetro y sendemail le pedirá la contraseña ... y la mostrará en la pantalla, pero al menos no estará en su historial de línea de comandos.

    
respondido por el jet 14.11.2010 - 02:48
21

mpack es una excelente forma de comando para enviar archivos adjuntos.

apt-get install mpack

uso:

mpack -s "file you wanted" ./data.pdf loser@supergoober.cn
    
respondido por el BozoJoe 12.11.2010 - 23:47
16

Necesita un MTA para enviar correo. Para esto, use postfix:

sudo apt-get install postfix

Para enviar un correo electrónico:

echo "test message" | mailx -s 'test subject' myemail@mydomain.com

AYUDA

    
respondido por el One Zero 10.08.2012 - 17:57
14

Instala el paquete sendmail y luego escribe

sendmail -t receiver@example 

luego escribe tu correo electrónico luego presiona Ctrl + D

    
respondido por el MhdSyrwan 03.07.2012 - 19:14
8

Puede enviar un correo electrónico desde la línea de comando con TelNet o NetCat .

Todo se explica aquí .

hanoo@hp_laptop% nc 127.0.0.1 25
220 hp_laptop.localdomain ESMTP Postfix
EHLO man
250 hp_laptop.localdomain
MAIL FROM: <netcat@postfix.com>
250 2.1.0 Ok
RCPT TO: <target@host.com>
250 2.1.5 Ok
data
354 End data with <CR><LF>.<CR><LF>
This is the body of my mail,
this is the second line...
.
250 2.0.0 Ok: queued as 9C12E7F404
    
respondido por el hanoo 30.10.2012 - 06:33
8
mail -s "subjet" -a "attchedfile_name" someone@dest_email.com

o

cat "afile" | mail -s "subject" someone@dest_email.com
    
respondido por el user142345 21.03.2013 - 20:16
6

Si intenta enviar un correo electrónico desde un sistema, que no ejecuta un servidor de correo electrónico propio (es decir, un sistema de escritorio), debe instalar algo como nullmailer o esmtp , que reenvía su correo local a un servidor de correo" real ".

Como herramientas de línea de comandos puede instalar mail o mailx (paquetes mailutils, heirloom-mailx o bsd-mailx). Si necesita archivos adjuntos, intente con biabam.

    
respondido por el ddeimeke 12.11.2010 - 22:21
5

Nunca lo intenté, pero hay un comando mail que puede enviar correos. Consulte correo de hombre .

Para probar el correo electrónico local:

echo message | mail username@localhost
    
respondido por el dv3500ea 12.11.2010 - 21:30
5
sudo apt-get install sharutils mailutils
uuencode filename filename | mail user@example.com

donde filename es el mismo: representa el archivo de entrada y el archivo remoto.

    
respondido por el nisse 10.01.2012 - 11:14
2

Puedes probar esto:

mail name@mailserver.com -s "Attached file" <<EOF                 
Hi

~| uuencode $HOME/filename.txt filename.txt

EOF

Funciona con Mailutils de GNU , consulte el sitio web para obtener más información.

    
respondido por el Sharad 25.04.2012 - 20:19
0

Además de lo anterior, todavía recibía este error

echo "Test message from Linux server using ssmtp" | sudo ssmtp -vvv  somebody@mil.gov
[<-] 220 smtp.gmail.com ESMTP v193sm19198825qka.18 - gsmtp
[->] EHLO localhost
[<-] 250 SMTPUTF8
[->] STARTTLS
[<-] 220 2.0.0 Ready to start TLS
[->] EHLO localhost
[<-] 250 SMTPUTF8
[->] AUTH LOGIN
[<-] 334 VXNlcm5hbWU6
[->] aG94Z2VuZUBrrrFpbC5jb20=
[<-] 334 UGFzweliecmQ6
[<-] 534 5.7.14  https://support.google.com/mail/answer/78754 v193sm19198825qka.18 - gsmtp
ssmtp: Authorization failed (534 5.7.14  https://support.google.com/mail/answer/78754 v193sm19198825qka.18 - gsmtp)

SOLUCIÓN: restablecer una contraseña de Gmail incluso cuando la contraseña actual sea correcta ... posiblemente la precaución de seguridad de Google

    
respondido por el Scott Stensland 29.08.2016 - 23:58
0

Ejecutar :

sudo apt-get install ssmtp
sudo -H gedit /etc/ssmtp/ssmtp.conf

Se debe agregar lo siguiente allí:

# The user that gets all the mails (UID < 1000, usually the admin)
root=yourusernameofgmail@gmail.com

# The mail server (where the mail is sent to), both port 465 or 587 should be acceptable
# See also https://support.google.com/mail/answer/78799
mailhub=smtp.gmail.com:587

# The address where the mail appears to come from for user authentication.
rewriteDomain=gmail.com

# Use SSL/TLS before starting negotiation
UseTLS=Yes
UseSTARTTLS=Yes

# Username/Password
AuthUser=yourusernameofgmail
AuthPass=yourGmailPassowrd
AuthMethod=LOGIN

# Email 'From header's can override the default domain?
FromLineOverride=yes

Ejecutar :

sudo -H gedit /etc/ssmtp/revaliases

Entrar allí:

root:yourusernameofgmail@gmail.com:smtp.gmail.com:587

Habilitar "aplicaciones menos seguras" en Gmail:
enlace

Pruébelo ejecutando lo siguiente en la terminal:

echo "Body of mail is abc" | mail -s "Subject is xyz" "someusername@gmail.com"'
    
respondido por el Aquarius_Girl 27.07.2017 - 10:42

Lea otras preguntas en las etiquetas