25/03/2011

Tutorial mutt para gmail

mutt
A motivação para esta postagem foi a necessidade de utilizar um MUA leve para ler/redigir e-mail's. Neste quesito, as ferramentas textuais tem grande vantagem por oferecer grande versatilidade com simplicidade. A grande questão é a curva de aprendizado. Estas ferramentas darão produtividade  à medida que se dedique em aprender como utilizar e até mesmo quando não se deve utilizar. Em 2008 havia escrito algo à respeito do mutt e agora venho escrever novamente utilizando com imap, recebendo e enviando, portanto tudo através do servidor. Lembre-se,  mesmo que seu sistema seja capaz de enviar e-mail diretamente, esta prática não é estimulada pois alguns servidores poderão recusar seus e-mail's.

Sobre o mutt:
Leitor de e-mail, baseado em texto com suporte a MIME, GPG, PGP, threading (esta é uma descrição do pacote do Debian). Com o mutt é possível fazer bounce de e-mail's, quebrar threads, agrupar threads, guardar em rascunho, anexar arquivos ou simplesmente ler, responder e compor e-mail's. Mutt é a máquina central de manipulação de suas mensagens, sendo que para a escrita de uma nova mensagem propriamente dita, pode-se utilizar outra ferramenta, como por exemplo o editor de textos vim. O arquivo principal de configuração do mutt é o .muttrc e é incrível o quanto ele é configurável  e o quanto é funcional. Depois que você configurar o básico e estiver funcional, poderá explorar opções mais avançadas, afinando gradativamente seu .muttrc. Leia até o final, tire suas dúvidas e então , terá um client de e-mail leve e funcional.
É preciso lembrar que o mutt é acessado diretamente via terminal, usando combinações do teclado. O mutt é tão somente um MUA (Mail User Agent), ou seja, ele NÃO é um MTA (Mail Transfer Agent)[1]. Apesar de ser possível separar as configurações do mutt em arquivos deferentes, aqui estaremos fazendo em um único arquivo, no caso .muttrc. Mas a medida que seu arquivo crescer, poderá ser dividido em seções e estas armazenadas em locais distintos, como por exemplo ~./.mutt/{files}.
Lembre-se também que existem 3 níveis para preparar o mutt: instalação, configuração e a interação. Em qualquer dos níveis é preciso fazer escolhas sobre o que você deseja fazer e como fazer. Tenha em mente então o que realmente quer, tome cuidade e não dependa tanto das configurácões defaults. Algumas pessoas tendem a customizar tudo, portanto cuide para fazer o que realmente precisa com cuidado.[2]

Começando:
O mutt pode ser instalado em qualquer Linux/BSD. Considero aqui o Debian que é a distro que uso; O mutt possui o pacote mutt e o mutt-patched que inclui alguns patches extras, como por exemplo uma lista de caixas de e-mail ao lado direito (ou esquerdo dependendo da configuração do .muttrc);
aptitude install mutt mutt-patched

Após a instalação você terá o mutt instalado no entanto sem o arquivo de configuração. Neste ponto caso chame o mutt pela linha de comando, este tentará ler e-mail's da máquina local. Não há problema nisso, mas certamente você não terá e-mail a ser mostrado;

Criando um ~/.muttrc
Antes de criarmos nosso primeiro .muttrc, de uma olhada no diretório /usr/share/doc/mutt em especial no arquivo manual.txt.gz. Este é o manual completo. Veja também no mesmo diretório o arquivo README.Debian, aqui algumas dicas de como configurar o .muttrc. Um outro diretório que merece atenção no seu estudo do mutt é o /usr/share/doc/mutt/exemplos, especialmente o arquivo Muttrc.gz; Para ter o .muttrc funcional rapidamente, sugiro que utilize as configurações padrões que ficam em /etc/Muttrc.d, faça isso através de um laço for da seguinte forma:
for i in /etc/Muttrc.d/*.rc; do cat $i >> ~/.muttrc;done

Esplicando: para toda variável $i no diretorio X, faça um cat em $i e append no arquivo .muttrc no home do usuário corrente; pronto.

Confira, seu arquivo deverá estar criado com as opções mais comuns; Próximo passo, ajustar o .muttrc para ler uma caixa de e-mail, por exemplo imap do gmail; Para isso adicione as seguintes linhas no seu .muttrc:

set imap_user = 'usuario@gmail.com'
set imap_pass=""
set spoolfile = imaps://imap.gmail.com:993/INBOX
set folder = "imaps://imap.gmail.com:993"

Com as entradas acima, seu mutt já será capaz de ler as mensagens na sua caixa postal. Agora insira a as configurações para envio de e-mail via servidor smtp do gmail:
set smtp_url = "smtp://usuario@smtp.gmail.com:587/"
set smtp_pass= ""
Note que o mutt irá solicitar senha para imap e smtp. Se você se sentir confortável e seguro, coloque sua senha nos respectivos campos em aspas. As linhas seguintes completam as funcionalidades básicas do mutt com gmail, ajustando as questões de pastas laterais, mover para lixeira, gravar e-mail enviados em sentmail, entre outras coisas:


set trash=+[Gmail]/Trash
set record="+[Gmail]/Sent Mail"
set postponed="+[Gmail]/Drafts"
set header_cache="~/.mutt/cache/headers"
set message_cachedir="~/.mutt/cache/bodies"
set certificate_file=~/.mutt/certificates 
# set up the sidebar, default not visible 
set sidebar_width=25 
set sidebar_visible=yes #no 
set sidebar_delim='|' 
# which mailboxes to list in the sidebar 
mailboxes =INBOX ='INBOX.Deleted Items' =[Gmail]/Drafts =[Gmail]/'Sent Mail' =[Gmail]/Spam 


Feito, considere ver as referências e fazer suas perguntas caso necessite;


[1]..os conceitos sobre MUA, MTA, MDA, etc, podem ser conferidos em http://wiki.mutt.org/?MailConcept
[2]..neste parágrafo usei algumas palavras que li no wiki oficial do mutt que pode ser acessado aqui: http://wiki.mutt.org/?MuttGuide/Introduction