2 votes

Outil ou méthode pour analyser un e-mail entrant, extraire les données et les pousser dans une base de données

Y a-t-il des outils disponibles qui permettront d'analyser automatiquement un e-mail entrant à une adresse spécifique, de supprimer les données et de les insérer dans une base de données SQL?

L'e-mail arriverait via le serveur Exchange 2003 et serait dans un format fixe connu, c'est-à-dire

Nom: Prénom Nom
Numéro d'identification: nnnnnnn
etc.
etc.

Idéalement, la solution devrait fonctionner sur le serveur et non sur un client. Tout conseil est apprécié.

3voto

moshen Points 1524

J'ai toujours vu ce genre de choses faites avec un peu de code de collage. Un peu de perl fonctionnerait pour cela :

#!/usr/bin/perl -w
use strict;
use Net::POP3;
use DBI;

my $pop = Net::POP3->new('mail.server.com') or
        die "merde, je ne peux pas me connecter\n";

my $dbh = DBI->connect('DBI:mysql:databasename', 'username', 'password'
               ) || die "Impossible de se connecter à la base de données : $DBI::errstr";

if ($pop->login( 'username' , 'pass' ) > 0) {
    my $msgnums = $pop->list;
    MESSAGE: foreach my $msgnum (keys %$msgnums) {
        my $msg = $pop->get($msgnum);

        my ( $firstName, $lastName, $idNum );

        if( $msg =~ /^Name:\s+([a-zA-Z]+)\s+([a-zA-Z]+)/){
            $firstName = $1;
            $lastName = $2;
        }
        if ( $msg =~ /^ID Number:\s+([0-9]+)/ ){
            $idNum = $1;
        }

        $dbh->do('INSERT INTO exmpl_tbl VALUES( ? , ? , ?)', undef, ($firstName, $lastName, $idNum));

        $pop->delete($msgnum);
        next MESSAGE;

    }
}

$pop->quit;
exit 0;

2voto

Bob Points 34449

Il existe un logiciel commercial qui semble faire cela :

Email2DB

  • Lire et traiter les messages des serveurs POP3, IMAP et Microsoft Exchange

  • [...]

  • Extraction facile de n'importe quel nombre de champs du sujet, du message et des en-têtes. Mettre à jour n'importe quelle source de données, y compris Access, SQL Server, Oracle, MySQL, Access, ODBC.

2voto

Evan Anderson Points 140581

Si vous souhaitez jouer avec un projet open source, jetez un coup d'œil à Archiveopteryx (http://www.archiveopteryx.org/). Il dispose d'un schéma de stockage de données SQL normalisé vraiment très agréable pour les e-mails (utilisant PostgreSQL). Vous pourriez le combiner, par exemple, avec "fetchmail" et un serveur POP3 sur Exchange pour créer une archive de messagerie basée sur SQL sur laquelle vous pourriez effectuer des rapports et des recherches avec des outils de reporting basés sur ODBC.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X