12/4/2002 23:20:25, Ricardo Stock <[EMAIL PROTECTED]> wrote:

>       Eu estou pensando em fazer da seguinte forma, que acho que seria uma otima 
>ideia para ser utlizado como historico da lista.
>
>       Criar um banco de dados com sistema de busca onde haveriam dois campos.
>
>       1 - titulo do e-mail que  seria o campo assunto
>
>       2 - conteudo - que seria o corpo do e-mail.
>
>est� � a ideia que estou tendo e pensando em fazer...

Coincidencia, hj � noite comecei a fazer algo do tipo aqui em Ruby pra tratar as 
mensagens de mailboxes do sylpheed, 
soh faltou inserir no banco. Eu j� tinha feito um em Java, bem completinho, com 
estatisticas, mas leva muito mais 
tempo pra executar. Modifica l� no meio para usar o banco de dados que vc quiser.  
Dica: use Ruby-DBI. Eh parecida 
com a do Perl, e nao precisa brigar com ", ' etc.

#!/usr/bin/ruby -w

require "mysql"
require "parsedate"

$dbhost = "localhost"
$banco = "BancoDeDadosQualquer"
$username = "usuario"
$password = "senha"
$dirmsgs = "/home/usuario/Mail/inbox/"

if(!(FileTest.directory?($dirmsgs))) then 
        $stderr << "Diretorio inexistente\n";
        exit 1;
end

def separa(msg)
                h_total = Hash.new
                arr_headers = [] 
                arr_corpos = []
                assunto, autor, data= ""
                h_total['headers'] = arr_headers
                h_total['corpos'] = arr_corpos
                msg.each { |linhah|
                        if(linhah.length == 1) then
                                break
                        else
                                arr_headers << linhah
                                if(linhah[0,8] == "Subject:") then
                                        assunto = linhah[9..linhah.size]
                                end
                                if(linhah[0,5] == "Date:") then
                                        data = linhah[6..linhah.size]
                                end
                                if(linhah[0,5] == "From:") then
                                        autor = linhah[6..linhah.size]
                                end
                        end
                }
                msg.each { |linhac|
                        arr_corpos << linhac 
                }
                h_total['headers'] = arr_headers
                h_total['corpos'] = arr_corpos
                h_total['assunto'] = assunto
                h_total['data'] = data
                h_total['autor'] = autor
                return h_total
end

def insere(hashmsg, cnt, debug)
        
        qmsgid = cnt
        qsubject = hashmsg['assunto'] 
        qautor = hashmsg['autor']
        qdata = hashmsg['data']
        qheader = hashmsg['headers']
        qdata = ParseDate.parsedate(qdata).to_s         
                
        db = Mysql.new(host=$dbhost, user=$username, passwd=$password, db=$banco)
        
        # aqui fiquei de saco cheio de ficar brigando com aspas, apostrofo etc. JDBC 
rules.
        # fa�a vc sua rotina de insercao. Use Ruby-DBI
        
end

i = 0

Dir.entries($dirmsgs).each { |arq|
        if(FileTest.directory?(arq) != true) then
                farqchk = File.open($dirmsgs + arq, "r")
                farqchk.lineno = 0;
                if(farqchk.read(2) == "Re") then
                        i = i + 1
                        farqchk.rewind
                        mensagem = separa(farqchk)
                        insere(mensagem,i,arq)
                        farqchk.close
                else
                        farqchk.close
                end
        end
}

-------

thiago

--
Knowledge is power -- knowledge shared is power lost. (Crowley)



Assinantes em 13/04/2002: 2231
Mensagens recebidas desde 07/01/1999: 162344
Historico e [des]cadastramento: http://linux-br.conectiva.com.br
Assuntos administrativos e problemas com a lista: 
            mailto:[EMAIL PROTECTED]

Responder a