![Pierre Pierre](//static.vivaolinux.com.br/imagens/fotos/desconhecido.png)
mister_pi
(usa Outra)
Enviado em 15/10/2012 - 17:12h
Olá pessoal!
Preciso enfiar um porrilhão de arquivos de e-mail no banco para viabilizar pesquisas.
Hoje eu estou fazendo +/- assim:
for i in /home/user/Maildir/new/*
do
nomearq=$(echo $i )
from=$( sed -n '/^From: /{p;q}' $nomearq | sed "s/'//g" | cut -c7-)
to=$(sed -n '/^To: /{p;q}' $nomearq | sed "s/'//g" | cut -c5-)
date=$(sed -n '/^Date: /{p;q}' $nomearq | sed "s/'//g" | cut -c11-)
menssagem1=$(sed '1,/^$/d' $nomearq | cut -b-700)
menssagem=$(echo $menssagem1 | tr -d '`' | tr -d '*'| tr -d "'"|cut -b-127185)
subject=$(sed -n '/^Subject: /{p;q}' $nomearq | sed "s/'//g" | cut -c9-)
nome=$(echo $i | cut -c27-)
mysql -uinfoemail -p***** -e "INSERT INTO d1(nomearq,frommail,subject,rcpto,date,menssagem) VALUES('$nome','$from','$subject','$to','$date','$menssagem');" infoemail
mv $i /email/messages/$nome
done
Até funciona, mas deve ter algum jeito mais inteligente de fazer isso.
Os arquivos em /home/user/Maildir/new/ são do tipo "smtp mail text" e sua construção segue a RFC822.
Alguém conhece alguma função que identifique os campos neste tipo de arquivo e que possa ser usada para fazer o INSERT?
TKS!
mister_pi