Questão Como enviar email a partir da linha de comando?


Como enviar email a partir da linha de comando?


194
2017-11-12 20:27


origem


ubuntuforums.org/showthread.php?t=780509 pode ajudá-lo. - User
Você também pode usar pinheiro. - Kaveh
Você também pode instalar o msmtp e seguir as instruções descritas no ArchWiki - thiagowfx
É muito ruim que as respostas para isso estejam tão desatualizadas. É uma questão importante que poderia usar um bom tutorial - 6005


Respostas:


Tente instalar O cliente de e-mail Mutt. 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á :-)


32
2017-11-12 20:46



Aceito este, uma vez que não requer qualquer configuração e é bastante fácil de usar. - Olivier Lalonde
esperar. mutt - amigável ao usuário? o mais louco one-liner que eu li hoje :) - Stann


  1. Instalar ssmtp  Install ssmtp:

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

    gksu gedit /etc/ssmtp/ssmtp.conf
    
  3. Acrescente 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 email 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 enviar.


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

ssmtp recipient_name@gmail.com < filename.txt

143
2017-11-12 21:32



Parece estranho deixar minha senha de e-mail exposta em algum arquivo no computador. Isso é seguro? - oadams
@oadams não é muito seguro. Use a verificação em duas etapas para diminuir o risco ou use um gateway de e-mail que não exija uma senha, como os seus ISPs. - itsadok
Não instale o ssmtp em um servidor com o postfix instalado. O postfix será removido. Em vez disso, basta usar o sendmail user@example.com <file.txt que funcionará com postfix ou ssmtp. - Alistair Buxton
Outra coisa estranha que eu queria compartilhar aqui é que não funcionou para mim quando eu tinha uma senha longa / complexa, mas funcionava quando eu a modificava para uma senha simples, estranha mas verdadeira. Eu também ouvi o mesmo de outra pessoa, mas tentei depois de muitas tentativas malsucedidas de enviar e-mail e assim que eu simplifiquei a senha, para minha surpresa, ela simplesmente funcionou;) - Rajat Gupta
Se o Gmail não permitir que o servidor acesse, faça login no Gmail no servidor com o navegador da linha de comando. askubuntu.com/questions/460022/using-terminal-as-a-web-browser - Sanghyun Lee


Na maioria das vezes você não precisa configurar um servidor SMTP que 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 . conectados. Isso é quando mail irá pedir-lhe para Cc: insira as informações (ou deixe em branco) e mail imprimirá 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.


84
2017-11-12 22:52



Eu adicionaria a resposta para incluir "sudo apt-get install mailutils", já que ele não está presente em uma instalação limpa do Ubuntu 10.04. Além disso, terminar a mensagem com um. em uma única linha não funcionou. Eu tive que "Ctrl-D" em vez disso. Por fim, a mensagem não passou! - Olivier Lalonde
@ OlivierLonde sudo apt-get install mailutils irá instalar um servidor SMTP que é postfix, o que pode estar um pouco acima do peso para algumas pessoas. - vaab
mailutils também instalará o mysql! - chmike
-v opção não na minha instalação do mail 2.99.98, também tive que usar Ctrl + D para finalizar - markmnl
Por favor, atualize esta questão, ela está desatualizada. - Blauhirn


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á em seu histórico de linha de comando.


44
2017-11-14 01:48



Enviando e-mail de uma conta do Gmail usando sendmail mais certeza muito útil. Obrigado. - Mark Tomlin
Encontre um patch Aqui para não repetir a senha. - Arun
Eu tive que especificar o porto com -s smtp.gmail.com:587. - Joe Mornin
adicionar um espaço antes de uma linha de comando para não salvá-lo no histórico da linha de comando - pl-94
outra maneira de não exibi-lo na tela bash: salva a senha em um arquivo, depois do arquivo para a variável de ambiente, ex: pass=$(cat my_password); sendemail... -xp $name ... e, claro, se você está chamando de forma programática, você pode fazer algo semelhante, ex: ruby system("sendemail ... -xp #{File.read 'my_password'}...") Também pode falhar na primeira vez, você deve receber um e-mail para essa conta sugerindo que você "ativar aplicativos menos seguros", então ele pode funcionar. - rogerdpack


O mpack é uma excelente maneira de linha de comando para enviar anexos de arquivos.

apt-get install mpack

uso:

mpack -s "file you wanted" ./data.pdf loser@supergoober.cn

21
2017-11-12 22:47





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

sudo apt-get install postfix

Para enviar email:

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

SOCORRO


16
2017-08-10 15:57



Você também precisa instalar mailutils para mailx, certo? - Nick
Eu gostaria que fosse realmente simples assim, mas a menos que você seja alguém muito especial, isso não vai funcionar. 99,9999% dos ISPs ignorarão os emails dos servidores privados de postfix, porque 9.99999 vezes em cada 10 são spammers. - Cerin
isso não funcionou para mim, pediu para instalar mailutils quando entrei no terminal - mostafiz rahman
Vá em frente e instale mailutils. Você não precisa do postfix IIRC. - uav


Instale o pacote sendmail então digite

sendmail -t receiver@example 

então escreva seu email em seguida, pressione Ctrl + D


14
2017-07-03 17:14





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

8
2017-10-30 05:33



É um pouco difícil usar o SSL ao usar esse método;) - iX3
@ iX3 é só usar swaks e você está bem com SSL / TLS também ;-) - Germar
Ou openssl s_client -starttls smtp ... - Raman


mail -s "subjet" -a "attchedfile_name" someone@dest_email.com

ou

cat "afile" | mail -s "subject" someone@dest_email.com

8
2018-03-21 19:16



apenas para adicionar para teste fácil: echo "Hello world!" | mail -s "Olá" mail@example.org - Bohne
Se alguém não tiver o comando mail, apenas execute: sudo apt-get install mailutils no Ubuntu / Debian ou yum install mailx em CentOS / Redhat - Giovanni Benussi


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

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


6
2017-11-12 21:21



Eu gosto de bsd-mailx para o comando -E e cronjobs - meffect