Enviando E-mail pelo Gmail com Screenshot em Anexo via Terminal Shell

10 01 2009

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:

  1. Abria o ksnapshot;
  2. Gerava a imagem;
  3. Abria o gmail;
  4. Anexava o arquivo;
  5. 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:

  1. Crie o arquivo screenmail.sh
  2. chmod +x scrennmail.sh
  3. ./screenmail.sh
  4. Digita o Assunto
  5. Digita o e-mail do destinatário
  6. Seleciona a região da tela que será mandada por e-mail
  7. 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!

Anúncios

Ações

Information

11 responses

12 01 2009
Cid R Andrade

Este artigo ficou muito bom! Parabéns

13 01 2009
battisti

Muito Obrigado, espero ter ajudado!

21 01 2009
Tales A.mendonça

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?

21 01 2009
Tales A.mendonça

opa, jah arumei 😉

8 02 2009
Jose Almeida

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

3 06 2009
Adelar

Muito boa a sua idéia!! [:)]

19 05 2010
Wellington Antonio

tujiop

19 05 2010
Wellington Antonio

ygjilgu9

23 08 2010
teneir

ele me retornou o seguinte erro
sendmail: Cannot open mail:25
oque eu fiz de errado?

cara ficaria interesante uzar o zenity –entry –text “assunto, email, etc”;

25 08 2010
battisti

Voce deve desinstalar o sendmail!

2 08 2013
Jardel Rodrigues

root=XXXXXX@gmail.com
mailhub=smtp.gmail.com:587
rewriteDomain=
hostname=smtp.gmail.com:587
UseSTARTTLS=YES
AuthUser=XXXXXX@gmail.com
AuthPass=YYYYYYYYYY
FromLineOverride=YES # optional

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s




%d blogueiros gostam disto: