28 de set de 2010

Envio anexo por linha de comando

Mais uma daquelas postagens que parece que eu defendo programas orientados à linha de comando. Se é isso que parece, então assumo que é isso mesmo. Estes realmente são programas pontuais, que só usam quem sabe o que está fazendo.  

O caso aqui é o mpack que pode ser instalado pelo comando :
#aptitude install mpack 

Assim, resolvi um grande problema de envio de dados, que antes utilizava duas rotinas, uma de geração dos dados, e outra o envio por um Software de terceiro, que não compactava os dados e vez ou outra dava erro (leia-se dava pau) sem contar que os usuários também esqueciam de uma parte do processo.

Com o mpack o envio de dados via linha de comando fica assim:

mpack -s Envio -d ../atualizacao.txt  -a Vendedor.zip vendedor1@e-maildestino.com.br

Onde temos que:
-s cabeçalho_do_email
-d um arquivo contendo uma mensagem
-a seta a disposição dos anexos ao e-mail
Vendedor.zip ou outro arquivo
destinatário(s) da mensagem

O pulo do gato aqui é a opção -a. Sem esta chave, o sistema receptor pode não conseguir separar os dados anexados, embaralhando os camos mime do seu e-mail. Sim, demorei umas 8 horas pra perceber isso. Como qualquer outra aplicação cl (command line), pode ser adaptada para qualquer necessidade e transformada em um script shell muito inteligente. No caso acima, coloquei a rotina diretamente no sistema que faz todo o trabalho limpo.

Referências:
man mpack