De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.

Extração automática de anexos de mensagens

Colaboração: Rubens Queiroz de Almeida

Data de Publicação: 17 de Janeiro de 2008

Eu recebo muitas mensagens com anexos, que me são enviadas por amigos. Como não são urgentes, eu geralmente as salvo em uma pasta separada, para ver mais tarde. Frequentemente estas mensagens não contêm texto algum, apenas o anexo. Desta forma, eu tentei descobrir uma solução que me permitisse extrair diretamente os anexos, sem precisar entrar em cada uma das mensagens.

Pesquisando na internet descobri o programa mimeStrip.pl que é na verdade um script escrito em perl.

O objetivo do autor ao escrever o script, foi economizar espaço em disco, removendo, das pastas de email desejadas, todos os anexos.

Em uma pasta de testes, após rodar o programa, eu tive os seguintes resultados:

$ ls -l
-rw-r--r-- 1 queiroz queiroz 204M 2008-01-16 09:09 teste.antes
-rw-r--r-- 1 queiroz queiroz  25M 2008-01-16 09:19 teste.depois

A redução é enorme (204 MB para 25 MB)

Para ver quais opções o programa oferece, digite mimeStrip.pl --h:

$ mimeStrip.pl ver. 0.8 Copyleft 2003, Steeve McCauley
Usage is: mimeStrip.pl --in folder --out folder.out --dir output-directory

   --in   input folder (default: stdin )
   --out  output folder (default: stdout)
   --swap rename in folder to out, and vice versa
   --dir  directory for decoded attachments (default: current)
   --cat  concatonate output to output folder (default: truncate)
   --help this help message

   Example,

      mimeStrip.pl --dir=~user/Mail/mime < user > user.stripped

A opção --out especifica onde será gravado o novo folder, já sem os anexos.

No meu caso, estou interessado apenas em salvar os anexos. O comando que uso é:

$ $ mimeStrip.pl --in mensagens --out /dev/null

Como eu não quero gravar uma nova pasta, eu direciono a saída para o dispositivo /dev/null, o buraco negro de sistemas Unix (tudo que vai para lá some).

Ao final da execução, o diretório corrente (eu não especifiquei a opção --dir), contém todos os anexos das mensagens da pasta. Os nomes frequentemente são meio estranhos, mas você pode arrumá-los de uma forma bem conveniente com o utilitário zzarrumanome, que é uma função do pacote funções zz, de autoria do Aurélio Marinho Jargas.

Um exemplo prático, algum tempo atrás, eu usei esta facilidade para extrair de uma pasta, os currículos enviados por candidatos a estágio no local onde trabalho. Uma mão na roda.

Finalmente, se o projeto no freshmeat sumir, faça o download do script diretamente do site da Dicas-L.

Adicionar comentário

* Campos obrigatórios
5000
Powered by Commentics

Comentários

Nenhum comentário ainda. Seja o primeiro!


Veja a relação completa dos artigos de Rubens Queiroz de Almeida