Como enviar email a partir da linha de comando?
Como enviar email a partir da linha de comando?
Respostas:
Tente instalar o cliente de email Mutt . Outra opção é usar o emacs com o 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á :-)
Instale o ssmtp :
sudo apt-get install ssmtp
Edite o arquivo de configuração ssmtp:
gksu gedit /etc/ssmtp/ssmtp.conf
Anexe o seguinte texto:
root=username@gmail.com
mailhub=smtp.gmail.com:465
rewriteDomain=gmail.com
AuthUser=username
AuthPass=password
FromLineOverride=YES
UseTLS=YES
Execute o ssmtp e forneça o endereço de email do destinatário:
ssmtp recepient_name@gmail.com
Forneça os detalhes da mensagem da seguinte maneira:
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.)
Pressione Ctrl+ Dpara enviar.
Você também pode colocar o texto no arquivo e enviá-lo da seguinte maneira:
ssmtp recipient_name@gmail.com < filename.txt
Na maioria das vezes, você não precisa configurar um servidor SMTP, basta usar a mail
partir da linha de comando (se ainda não estiver presente, instale com sudo apt-get install mailutils
). (Ou se você estiver em um servidor em que 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 as mensagens com um único .
on-line. É quando mail
você solicita Cc:
as informações (ou deixa em branco) e mail
imprime informações adicionais sobre o que está tentando fazer, além de detalhar o processamento de conexão, transmissão e recebimento de dados do servidor de correio.
sudo apt-get install mailutils
instalará um servidor SMTP postfix
que pode estar um pouco acima do peso para algumas pessoas.
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 coisa boa a fazer), poderá 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.
sendmail
maior segurança possível. Obrigado.
-s smtp.gmail.com:587
.
pass=$(cat my_password); sendemail... -xp $name ...
e, claro, se você estiver chamando programaticamente, poderá fazer algo semelhante, ex: ruby system("sendemail ... -xp #{File.read 'my_password'}...")
também pode falhar Na primeira vez, você deve enviar um email para essa conta sugerindo que "ative aplicativos menos seguros" para que funcione.
Você precisa de um MTA para enviar email. Para isso, use o postfix:
sudo apt-get install postfix
Para enviar email:
echo "test message" | mailx -s 'test subject' myemail@mydomain.com
mailutils
quando entrei esta no terminal
mail -s "subjet" -a "attchedfile_name" someone@dest_email.com
ou
cat "afile" | mail -s "subject" someone@dest_email.com
sudo apt-get install mailutils
no Ubuntu / Debian ou yum install mailx
no CentOS / Redhat
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
swaks
e você está bem com SSL / TLS, também ;-)
openssl s_client -starttls smtp ...
Se você tentar enviar um email de um sistema, o whitch não executa um servidor de email próprio (ou seja, sistema de desktop), é necessário instalar algo como nullmailer ou esmtp , que encaminham o email local para um email "real" servidor.
Como ferramentas de linha de comando, você pode instalar o mail ou mailx (pacotes mailutils, heirloom-mailx ou bsd-mailx). Se você precisar de anexos, tente biabam.
Eu nunca tentei, mas há um mail
comando que pode enviar email. Veja correio do homem .
Para testar o email local:
echo message | mail username@localhost
sudo apt-get install sharutils mailutils
uuencode filename filename | mail user@example.com
onde filename
é o mesmo: significa arquivo de entrada e arquivo remoto.
sudo apt-get install sharutils
parauuencode
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 , consulte o site para mais informações.
Execute :
sudo apt-get install ssmtp
sudo -H gedit /etc/ssmtp/ssmtp.conf
O seguinte precisa ser adicionado lá:
# 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
Execute :
sudo -H gedit /etc/ssmtp/revaliases
Entre lá:
root:yourusernameofgmail@gmail.com:smtp.gmail.com:587
Ative "aplicativos menos seguros" no Gmail:
https://support.google.com/accounts/answer/6010255?hl=pt-BR
Teste-o executando o seguinte no terminal:
echo "Body of mail is abc" | mail -s "Subject is xyz" "someusername@gmail.com"`
Além do acima, eu ainda estava recebendo este 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: redefina a senha do gmail mesmo quando a senha atual estiver correta ... possivelmente precaução de segurança do Google