[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Script para sumarizar caixa de e-mail
From: |
Cristiano Ferrari |
Subject: |
Script para sumarizar caixa de e-mail |
Date: |
Wed, 15 Apr 2009 11:03:45 -0000 |
User-agent: |
eGroups-EW/0.82 |
Salve ilustres bom dia.
Preciso enxugar o tamanho e a quantidade de mensagens de um usuário, gravadas
dentro do diretório "cur" do servidor de e-mails.
O cidadão, que é o dono da empresa, tem mais de 26.000 mensagens em 13gb de
dados. Devido à necessidade do cidadão ter acesso para consultar o histórico de
sua caixa postal em viagens, mesmo que sem a disponibilidade de conexão com a
internet, optamos no passado por não usar IMAP, mas baixar as mensagens via
POP3, deixando uma cópia no servidor, para ser acessada via webmail, ou para
serem recuperadas no caso de um crash no cliente de e-mail.
Ontem, devido a uma troca deste cliente de e-mail, todas as mensagens
armazenadas tiverem que ser baixadas novamente.
O problema é que não dá para baixar 13 gb de mensagem. Quando o arquivo da
caixa postal chega perto dos 4 gb, o Thunderbird começa a chiar e dizer que não
há mais espaço para baixar mensagens novas.
A solução é excluir, dentre as mais 26000 armzenadas no servidor aqueles lixo
que nem deveriam estar alí, como por exemplo vídeos e pps de mensagens
edificantes e outras cositas mais....
Pensei então em criar um script que leia o conteúdo de cada mensagem procurando
a string que identifica o remetente e crie um arquivo texto com 2 colunas: o
nome do remetente e o tamanho da mensagem.
Depois, eu poderia pegar este arquivo e totalizar quantas mensagens e quantos
megas (ou gigas) exitem de cada remetente para orientar ao cidadão ou que eu
poderia deletar do servidor para chegar nos 2-3 gigas que o Thunderbird
suportaria baixar.
Depois que ele me indicasse os destinatário que eu poderia excluir (aqueles
contatos que todo mundo tem e que só envia futilidades) eu precisaria fazer
outro script para excluir as mensagens destes (mas esta é a parte facil).
Minha dificuldade está em definir a melhor forma de fazer isso sem ter que
ficar com uma thread rodando por uma semana no servidor.
Pensei em criar um for (ou while) à partir de um ls no diretório "cur" e à
partir daí usar grep e cut para extrair o endereço do remetente e direcionar a
saída para um arquivo texto.
Mas acho que isso irá consumir muito recuso. Acho que talvez com o awk eu
consiga algo mais simples e mais eficaz, em termos de uso de processamento, só
não sei como.
Alguém tem alguma idéia?
Abraços e obrigado de antemão.
Cristiano