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 user@gmail.com [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.


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 user@gmail.com

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.


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 user@domain.com

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á.


2
Apenas para adicionar à resposta do assunto e do corpo: echo -e "Assunto: teste \ n \ n Conteúdo do corpo aqui \ n" | sendmail
user@domain.com

13

Você também pode usar o sendmail:

/usr/sbin/sendmail user@domain.com < /file/to/send

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" username@domain.com

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



-3

Enviando Correio Simples:

$ mail -s "test message from centos" recipient@example.com
hello from centos linux command line

Ctrl+ Dpara terminar


2
ele está perguntando no comando on line.
Rohit Gupta
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.