Назад | Перейти на главную страницу

Инструмент или метод для анализа входящей электронной почты, удаления данных и отправки в базу данных

Существуют ли какие-либо инструменты, которые автоматически анализируют входящее электронное письмо на определенный адрес, выделяют данные и вставляют их в базу данных SQL?

Электронная почта будет поступать через сервер Exchange 2003 и будет в известном фиксированном формате, т. Е.

Имя: Имя Фамилия
ID номер: nnnnnnn
и т.п.
и т.п.

В идеале решение должно работать на сервере, а не на клиенте. Любые советы приветствуются.

Я всегда видел, как подобное делается с помощью небольшого количества связующего кода. Для этого подойдет немного perl:

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

my $pop = Net::POP3->new('mail.server.com') or
        die "shit, I can't connect\n";

my $dbh = DBI->connect('DBI:mysql:databasename', 'username', 'password'
               ) || die "Could not connect to database: $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;

Если вы хотите поиграть с проектом с открытым исходным кодом, взгляните на Archiveopteryx (http://www.archiveopteryx.org/). У него действительно очень приятная нормализованная схема хранения данных на основе SQL для электронной почты (с использованием PostgreSQL). Вы можете объединить его, скажем, с «fetchmail» и сервером POP3 в Exchange, чтобы создать почтовый архив на основе SQL, по которому вы можете составлять отчеты и выполнять поиск с помощью инструментов отчетов на основе ODBC.

Есть коммерческое программное обеспечение, которое вроде бы это делает:

Email2DB

  • Чтение и обработка сообщений с серверов POP3, IMAP и Microsoft Exchange

  • [...]

  • Простое извлечение любого количества полей из темы, сообщения и заголовков. Обновите любой источник данных, включая Access, SQL Server, Oracle, MySQL, Access, ODBC.