envie email do terminal linux em uma linha [fechado]

148

Eu sei que existe o comando mailno linux para enviar e-mails via linha de comando. Como posso enviar um email simples com uma linha do terminal?

Por exemplo:

mail [email protected] [subject] [body]

E o email foi enviado sem nenhuma confirmação ou solicitação ao usuário?

O motivo é que quero enviar uma breve mensagem por email para mim quando um evento específico acontece em um javaprograma. A idéia é que eu usarei Runtime.getRuntime()… etc. para enviar o mail commanddo meu javaprograma.

Eu costumava cronfazer algo semelhante no passado, mas a implementação atual não usa cron, então eu preciso tentar isso.

cHam
fonte
Use bulk mail CLI, uma ferramenta eficiente e poderosa para enviar e-mails dinâmicos para uma lista de discussão por apenas um comando fácil: bulkmail mail! Fazer rápida, mini, e-mail marketing sem problemas com este pequeno mas poderoso ferramenta 💌 bulkmail.now.sh
Kumar Abhirup

Respostas:

209

O mail pode representar vários programas em um sistema linux. O que você quer por trás disso é sendmail ou postfix . Eu recomendo o último.

Você pode instalá-lo através do seu gerenciador de pacotes favorito. Então você precisa configurá-lo e, depois de fazer isso, pode enviar um email como este:

 echo "My message" | mail -s subject [email protected]

Veja o manual para mais informações.

No que diz respeito à configuração do postfix, há muitos artigos na internet sobre como fazê-lo. A menos que você esteja em um servidor público com um domínio registrado, geralmente deseja encaminhar o email para um servidor SMTP de onde pode enviar emails.

Para o gmail, por exemplo, siga http://rtcamp.com/tutorials/linux/ubuntu-postfix-gmail-smtp/ ou qualquer outro tutorial semelhante.

PSkocik
fonte
4
O Postfix é poderoso, mas se você precisar apenas enviar e-mail, tente "ssmtp". Este pacote é menor e não executa um daemon como o postfix. Ele suporta protocolos seguros e funciona com o gmail.
oᴉɹǝɥɔ
6
"O programa 'mail' não está instalado no momento. Você pode instalá-lo digitando: apt-get install mailutils"
Tom
mais leve: pacotes nullmailerplus bsd-mailx. Suficiente para a maioria das estações de trabalho :) E como nullmailerinclui uma sendmailinterface, você pode até pular o bsd-mailxpacote e usar a abordagem de Hengjie .
Izzy
@ oᴉɹǝɥɔ ssmtpestá obsoleto. Use em msmtpvez disso.
Matt M.
32
echo "Subject: test" | /usr/sbin/sendmail [email protected]

Isso permite que você faça isso em uma linha de comando sem ter que repetir um arquivo de texto. Esta resposta se baseia na resposta de @ mti2935. Então o crédito vai para lá.

Hengjie
fonte
2
Apenas para adicionar à resposta do assunto e do corpo: echo -e "Assunto: teste \ n \ n Conteúdo do corpo aqui \ n" | sendmail
[email protected]
13

Você também pode usar o sendmail:

/usr/sbin/sendmail [email protected] < /file/to/send
mti2935
fonte
Nota: Eu tenho Postfix + S-Nail. Isto é o que funcionou para mim. Primeiro, usei a resposta "Rohit Gupta" e baixei os utilitários de correio, depois fiz o seu e tudo funcionou.
Mohammed Baashar
13

Para usuários do Ubuntu: Primeiro você precisa instalar o mailutils

sudo apt-get install mailutils

Configure um servidor de email, se você estiver usando o gmail ou o smtp. siga este link . use este comando para enviar email.

echo "this is a test mail" | mail -s "Subject of mail" [email protected]

Caso você esteja usando o gmail e ainda esteja recebendo algum erro de autenticação, precisará alterar a configuração do gmail:

Ative o Access para aplicativos menos seguros a partir daqui

Rohit Gupta
fonte
-3

Enviando Correio Simples:

$ mail -s "test message from centos" [email protected]
hello from centos linux command line

Ctrl+ Dpara terminar

abhilash
fonte
2
ele está perguntando no comando on line.
Rohit Gupta