Como enviar e-mail a partir da linha de comando?

190

Como enviar e-mail a partir da linha de comando?

    
por Olivier Lalonde 12.11.2010 / 21:27

15 respostas

31

Tente instalar o The Mutt E-mail Client . Outra opção é usar o emacs com gnus . Outras opções disponíveis também ... IMHO, você deve usar mais detalhes em suas perguntas, ou várias respostas diferentes para sua pergunta você receberá: -)

    
por crncosta 12.11.2010 / 21:46
141
  1. Instale o ssmtp :

    sudo apt-get install ssmtp
    
  2. Edite o arquivo de configuração ssmtp:

    gksu gedit /etc/ssmtp/ssmtp.conf
    
  3. Anexe o seguinte texto:

    root=username@gmail.com
    mailhub=smtp.gmail.com:465
    rewriteDomain=gmail.com
    AuthUser=username
    AuthPass=password
    FromLineOverride=YES
    UseTLS=YES
    
  4. Execute ssmtp e forneça o endereço de e-mail do destinatário:

    ssmtp recepient_name@gmail.com
    
  5. Forneça os detalhes da mensagem da seguinte forma:

    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. Pressione Ctrl + D para enviar.

Você também pode colocar o texto no arquivo e enviá-lo da seguinte forma:

ssmtp recipient_name@gmail.com < filename.txt
    
por Sid 12.11.2010 / 22:32
81

Na maioria das vezes você não precisa configurar um servidor SMTP, você pode simplesmente usar mail da linha de comando (se ainda não estiver presente, instale com sudo apt-get install mailutils ). (Ou se você estiver em um servidor onde o sendmail está configurado, etc)

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

Hope all is well.
.
Cc: 

Você encerra mensagens com um único . on line. É quando mail solicitará Cc: inserir as informações (ou deixar em branco) e mail imprimirá informações adicionais sobre o que está tentando fazer, além de detalhar o processamento da conexão, transmissão e receber dados do servidor de email.

    
por Marco Ceppi 12.11.2010 / 23:52
43
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 

Se você não quiser especificar sua senha na linha de comando (geralmente não é uma boa coisa a fazer), você pode omitir esse parâmetro e o sendemail solicitará a senha ... e a exibirá na tela, mas pelo menos não estará no seu histórico de linha de comando.

    
por jet 14.11.2010 / 02:48
21

mpack é excelente maneira de enviar anexos de arquivos.

apt-get install mpack

uso:

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

Você precisa de um MTA para enviar e-mails. Para isso, use o postfix:

sudo apt-get install postfix

Para enviar e-mail:

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

HELP

    
por One Zero 10.08.2012 / 17:57
14

Instale o pacote sendmail e digite

sendmail -t receiver@example 

escreva seu e-mail em seguida, pressione Ctrl + D

    
por MhdSyrwan 03.07.2012 / 19:14
8

Você pode enviar um email a partir da linha de comando com TelNet ou NetCat .

Tudo é explicado aqui .

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
    
por hanoo 30.10.2012 / 06:33
8
mail -s "subjet" -a "attchedfile_name" someone@dest_email.com

ou

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

Se você tentar enviar e-mail de um sistema, o qual não executa um servidor de e-mail próprio (ou seja, sistema de desktop), você precisa instalar algo como nullmailer ou esmtp , que encaminha seus e-mails locais para um servidor de e-mail" real ".

Como ferramentas de linha de comando você pode instalar mail ou mailx (pacotes mailutils, heirloom-mailx ou bsd-mailx). Se você precisar de anexos, experimente o biabam.

    
por ddeimeke 12.11.2010 / 22:21
5

Eu nunca tentei, mas há um comando mail que pode enviar mensagens. Veja o correio do homem .

Para testar o email local:

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

onde filename é o mesmo: significa arquivo de entrada e arquivo remoto.

    
por nisse 10.01.2012 / 11:14
2

Você pode tentar isso:

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

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

EOF

Funciona com o GNU Mailutils , verifique o site para mais informações.

    
por Sharad 25.04.2012 / 20:19
0

Além de acima, eu ainda estava recebendo esse erro

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)

SOLUÇÃO: faça uma redefinição de senha do Gmail mesmo quando a senha atual estiver correta ... possivelmente, a precaução de segurança do Google

    
por Scott Stensland 29.08.2016 / 23:58
0

Executar :

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

O seguinte precisa ser adicionado:

# 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

Executar :

sudo -H gedit /etc/ssmtp/revaliases

Digite aqui:

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

Ativar "aplicativos menos seguros" no Gmail:
link

Teste-o executando o seguinte no terminal:

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