Vi algumas pessoas precisando desse tipo de recurso, usei no início do ano e até tinha me esquecido como ;-), resolvi resgatar alguns arquivos de configuração que tenho e voltei a brincar com isso; e acho que vou usá-lo mais daqui pra frente.
A ferramenta usada para fazer o envio de e-mails, é o
mutt :
"Mutt é um software de baseado em texto (para terminais) pequeno, mas muito poderoso para a leitura e envio de e-mails em sistemas operacionais UNIX, incluindo suporte para cores em terminais, MIME, OpenPGP, e um modo de classificação threaded."
(Tradução livre de parte do
man mutt, apoiada pelo
http://translate.google.com.br)
Bom como você pode ver o mutt serve tanto para ler (receber) como para enviar e-mail, nesse artigo vou apenas cobrir uma forma rápida de configurá-lo para enviar, e posto algumas dicas para automatizar o envio da mesma mensagem para diversos destinatários.
Instalando o mutt
Testando no
Ubuntu 11.10 e
Debian 6.
Como já faz parte dos repositórios padrões, para instalar, basta usar o comando:
$ sudo apt-get install mutt
Após o download e instalação automática pelo apt-get, no Debian passe para a configuração, no Ubuntu alguns telas de configurações serão mostradas:
Essa tela avisa sobre as configurações de servidor de e-mail disponível, apenas dê um ENTER, já a próxima tela:
Pede para você escolher a configuração de servidor de e-mail que melhor atende as suas necessidades, como nossa necessidade no momento é só enviar e-mail, escolhe a primeira opção 'No configuration' e dê ENTER.
Configurando o arquivo .muttrc
Agora vamos configurar o arquivo de usuário que o mutt irá usar para coletar as informações para envio de e-mail.
Esse arquivo não existe por padrão, então iremos criá-lo, dentro do diretório do usuário desejado:
$ nano ~/.muttrc
# Nome do Remetente
set realname="Raimundo Portela"
# Email do Remetente
set from="rai3mb@gmail.com;"
# Usuario da conta de email
set my_user=rai3mb@gmail.com
# Senha da conta de email
set my_pass='SENHA_FACIL'
# Autenticacao no servidor smtp de email, nesse caso do gmail.com
set smtp_url=smtps://$my_user:$my_pass@smtp.gmail.com
# Camada de segurança, requerida pelo gmail.com
set ssl_force_tls = yes
Usei o editor nano, você pode usar qualquer um, basta colocar o conteúdo indicado fazendo as adaptações e salve dentro do seu diretório de usuário com o nome '.muttrc' (observe o ponto no inicio do nome) , deixei-o comentado para facilitar.
Enviando o e-mail
Bom, agora começa brincadeira, basta abrir um terminal e passar alguns parâmetros básicos para o mutt, eu uso a seguinte sintaxe:
$ echo 'conteúdo do e-mail' | mutt -s 'assunto do e-mail' email_destino@dominio.com
Exemplo:
$ echo "Ao rai3mb,
Testando envio de email com mutt
Att,
tu mesmo" | mutt -s "assunto teste" rai3mb@gmail.com
Email com arquivo anexo
Para enviar um ou vários arquivos em anexo ao e-mail, basta informar o parâmetro '-a' seguindo do nome dos arquivos:
$ echo 'Este é um email teste enviado para mim mesmo ;-)' | mutt -s 'teste para VOL' -a pgadmin.log log-7z.txt -- rai3mb@gmail.com
Obs.: Observe que após o nome do último arquivo a anexar deve-se colocar '--' (dois traços) para depois informar o(s) destinatário(s).
[1] Comentário enviado por
lemuelroberto em 25/11/2011 - 08:24h:
Muito obrigado.
Muito bom poder enviar um email de forma tão fácil pelo terminal, e de forma automática.
[2] Comentário enviado por
ribafs em 25/11/2011 - 08:52h:
Caro Portela, uma beleza sua dica.
Testei aqui num Mint e funcionou beleza.
Isso é realmente trabalhoso de achar.
Quando trabalhamos em servidores sem ambiente gráfico fica muito útil.
Valeu camarada, muito grato pela dica!
[3] Comentário enviado por
hellnux em 25/11/2011 - 10:20h:
Bela contribuição,
Já utilizo o mutt em alguns scripts. Fiquei curioso com o código "while read LINHA" e decidi testa-lo aqui no Ubuntu, a priori não funcionou. Só funcionou quando deixei uma linha em branco no final do arquivo dos destinatarios, acredito que o correto seja assim. A versão do meu bash é 4.1.
[4] Comentário enviado por
izaias em 25/11/2011 - 12:03h:
Não falei, Rai.
É um excelente trabalho!
Parabéns pinguim!
[5] Comentário enviado por
rai3mb em 25/11/2011 - 18:56h:
Valeu pessoal, que bom que esteja sendo útil.
@hellnux
O meu bash GNU bash, version 4.1.5(1)-release (i486-pc-linux-gnu)
Tá funcionando normalmente, sem colocar a linha em branco no final, achei estranho o erro pra vc, pra mim sempre funcionou ;-)
Pode ser a formatação de alguma coisa que determina o fim do arquivo ;-), meu $LANG_C = en_US.utf8
Mas o importante mesmo é que funcionou ;-)
[6] Comentário enviado por
rodrigo.a.sc em 26/11/2011 - 10:33h:
No Caso ele seria um client que se logaria na sua conta no GMAIL e de lá enviaria um e-mail, certo ?!
[7] Comentário enviado por
sansimon em 26/11/2011 - 12:55h:
Vale lembrar que no arquivo .muttrc a senha fica em modo texto legível , então é seguro depois que enviar remover a senha do .muttrc.
Valeu pela post, muito útil.
saudações a todos.
[8] Comentário enviado por
rai3mb em 26/11/2011 - 22:04h:
@rodrigo.a.sc
Sim, assim como outros programas cliente Thunderbird e Evolution, eles precisam de um servidor configurado para o envio do e-mail, nesse caso demonstrei usando o smtp (servidor de envio) do GMail, mas pode ser outro basta trocar o servidor de autenticação, usuário e senha ;-)
Abraços
[9] Comentário enviado por
rai3mb em 26/11/2011 - 22:10h:
@sansimon
Isso mesmo a senha fica legível, no caso se alguém não quiser colocar a senha no arquivo por achar que pode ser uma brecha de segurança do seu ambiente, pode não deixar a senha no arquivo, deixando as outras configurações, e fazer o seguinte:
Antes de enviar um e-mail no terminal, digite:
export my_pass='coloque_sua_senha'
echo 'conteúdo do email' | mutt -s 'assunto' e-mail_destino@dominio.com
Prontinho, vai funcionar do mesmo jeito e a senha fica na variável my_pass em memória podendo ser apagada logo em seguida, com:
my_pass='' ou unset my_pass
Abraços
[10] Comentário enviado por
chimico em 27/11/2011 - 13:54h:
@rai3mb
parabéns quase chará, eu também estava procurando algo sobre o mutt, eu ia até perguntar sobre comom utilizar duas contas de email, mas vejo que dá para usar um shell script para cada uma. Quanto a segurança da senha creio que compilar o script deve resolver, ao invés de usar a senhar como variável de ambiente (http://www.vivaolinux.com.br/dica/Compilar-shell-script).
[11] Comentário enviado por
rai3mb em 27/11/2011 - 21:22h:
@chímico
beleza, usar como variável de ambiente é mais seguro que compilar ;-), pois vc usa e logo em seguida apaga, compilando tem engenharia reversa, mas essa questão de segurança é para casos extremos mesmo, para o caso de alguém acessar seu micro e ficar fuçando arquivos como esse, nesse caso usando como variável e logo em seguida apagando não há problema.
Abraços
[12] Comentário enviado por
duke_nukem em 28/11/2011 - 03:19h:
Bem legal, mas no meu aparece " alerme de tempo"
[13] Comentário enviado por
rai3mb em 28/11/2011 - 10:00h:
@duke_nukem em que momento aparece essa mensagem?
é "alarme de tempo" ?? revise as configurações, está demorando para finalizar o comando? o problema pode ser outro...
[14] Comentário enviado por
junior.rocha em 28/11/2011 - 18:00h:
Muito bom Raimundo!
Eu estava utilizando o sendEmail para enviar e-mails via PHP, mas vou pensar no mutt.
Hehe.
Um abraço.
[15] Comentário enviado por
hellnux em 29/11/2011 - 11:33h:
@rai3mb
Desculpe a demora, pois a VM (Ubuntu 10.10) fica no meu trampo. Segue:
LANG=pt_BR.utf8
Estranho mesmo. Ninguém além de mim comentou sobre, então devo ser o único. ^^
[16] Comentário enviado por
horion em 13/05/2012 - 12:48h:
Tem como usar o mutt com o logwatch para envio de e-mail, grande abraço
[17] Comentário enviado por
rai3mb em 16/05/2012 - 12:31h:
Não conheço a ferramenta, mas se ela colocar sua saída em um arquivo ou na saída padrão, tem como sim, bastaria algo como
logwatch | mutt -s 'assunto' destinatario
ou
cat arquivo_de_saida | mutt -s 'assunto' destinatario