O Problema
Sou programador Web a cerca de 7 anos e nesse tempo todo passei por várias metodologias de desenvolvimento. Atualmente estou trabalhando com uma mistura de SCRUM com XP, com isso, a interação com o cliente final aumentou bastante e uma atividade que faço frequentemente é mandar screenshot da tela que estou implementando via e-mail para que o usuário de seu feedback. Como eu fazia isso:
- Abria o ksnapshot;
- Gerava a imagem;
- Abria o gmail;
- Anexava o arquivo;
- Enviava o mail;
Porém esse processo é meio lento então resolvi bolar um script que facilitasse minha vida.
Pré-Requisitos
Para poder mandar e-mail utilizando o terminal é necessário que você tenha um MTA (Mail Transfer Agent) instalado e configurado em sua máquina, exemplos de MTA: SendMail, postfix, Wmail etc…, como vocês devem saber, realizar a configuração desse tipo de serviço é um verdadeiro chute no saco, sem contar que as chances dos e-mails disparados pela minha máquina serem considerados spam pelo destinatário eram enormes, então com a ajuda do meu colega enciso instalei um “MTA Light” chamado sSMTP.
sSMTP
Neste post do Blog Tecnologia e Educação está bem explicadinho o que é e como funcinoa o sSMTP. Em resumo a coisa funciona assim: O sSMTP finge ser um MTA porém o que ele faz é enfileiras as mensagens de e-mail e encaminhar para um servidor que tenha um MTA de verdade, no meu caso ele encaminha para o gmail.
Para instalar o sSMTP
sudo apt-get install sSMTP
IMPORTANTE! Como é possível ter apenas um MTA por máquina caso já exista outro instalado ele será removido.
Para configurar o sSMTP edite o arquivo /etc/ssmtp/ssmtp.conf.
# # Config file for sSMTP sendmail # root=seuemail@gmail.com mailhub=smtp.gmail.com rewriteDomain= gmail.com hostname=pc08 usestarttls=yes authuser=seuemail@gmail.com authpass=suasenha
Testando o sSMTP
Para testar se está funcionando tente mandar um mail via linha de comando:
echo "Aprendi no blog do battisti" | mail -s "O E-mail Chegou" seu@email.com
Se você receber um e-mail significa que tudo esta funcionando corretamente.
Tirar Screen Via Terminal Shell
Sempre usei o ksnapshot para tirar screenshot, é uma ótima ferramenta recomando muito, porém, no meu caso precisava que fosse via linha de comando então descobri o comando import.
import tela.jpg
Assm que digitar este comando o seu cursor vai virar um cruz, se você der um click na tela então toda ela seja jogada para dentro do arquivo tela.jpg, se você selecionar uma região então apenas o pedaço selecionado será jogado para dnetro do arquivo.
Pronto arquivo gerado agora como mandar via e-mail? Bom dando mais uma pesquisada descobri o mPack.
mPack
o mPack é uma ferramenta para codificar/codificar mensagens MIME de forma que arquivos possam ser enviados via e-mail
coube como uma luva.
O Script
Depois de estudar toda essa parafernalha resolvi agregar tudo em um script o screenMail.sh.
echo "Assunto:"; read ASSUNTO echo "Destinatário"; read EMAIL # gera o jpg da tela import tela.jpg # manda o mail com o assunto e o anexo mpack -s "$ASSUNTO" tela.jpg $EMAIL # remove o tela.jpg rm tela.jpg
Como usar:
- Crie o arquivo screenmail.sh
- chmod +x scrennmail.sh
- ./screenmail.sh
- Digita o Assunto
- Digita o e-mail do destinatário
- Seleciona a região da tela que será mandada por e-mail
- Pronto! e-mail enviado
Conclusão
Usando um script.sh consegui reduzir significativamente o tempo que gastava mando screenshot com isso tenho mais tempo para me dedicar a análise/programação.
Se tiver alguma idéia de como simplificar este script por favor manda ai um comentário!








Este artigo ficou muito bom! Parabéns
Muito Obrigado, espero ter ajudado!
Olá, você me deu uma luz com esse artigo, muito obrigado..
Eu montei um script um pouco mais incrementado, mas estou com um problema, na hora que o mpack vai exeutar, aparece..
“de: No such file or directory”
estranho que antes no início do script, tem uma variável qeu acessa um diretório e faz tudo lá, mas de alguma forma o mpack não est’encontrando o arquivo..
Tem alguma ideia?
opa, jah arumei
Amigos, preciso de ajuda!
Quero anexar uma foto num e-mail do gmail e não consigo!
Já sou da brigada do reumático mas nisto de computador…..sou muito novinho!!!!
Grato pela atenção.
meu mail, matosinhos.almeida@gmail.com
Muito boa a sua idéia!! [:)]