LINUX.ORG.RU

Парсер письма


0

0

Подскажите, есть ли инструменты по разборке писем ? Нужно вытащить из заголовка некоторые поля (From, To ...), ну и потом с ними некоторые операции произвести. Парсить в лоб письмо с кодировками и переносами строк для каждого нужного поля как-то неинтересно. Может есть способ сделать более красиво или существуют готовые инструменты для подобных задач ?


есть, практически для всех языков программирования. Если хотел ограничиться башем — используй перл, он наиболее близок.

name_no ★★ ()
Ответ на: комментарий от hyop

Есть много вариантов получения почты, вот пример с локальным ящиком:

#!/usr/bin/perl -w
#use strict;
use warnings;
use MIME::Parser;
use Data::Dumper;
use Mail::Box;
use Mail::Box::Manager;
use Mail::Box::Mbox;


my $MAILBOX = $ENV{HOME}."/.maildir/";

-d $MAILBOX or (print "No mail\n" and exit);
my $mgr = Mail::Box::Manager->new;
my $mbox=$mgr->open( folder => $MAILBOX, access => 'rw');

foreach my $message ($mbox->messages) {
    printf "Subj: [%s]\n", $message->subject;
    printf "From: [%s]\n", ($message->from)[0]->address;
    printf "Body: [%s]\n", $message->body;
    $message->delete;
}

$mbox->close();
name_no ★★ ()
┌[~]
└> apt-cache show mailutils
Package: mailutils
<...>
Section: mail
Priority: optional
Homepage: http://www.gnu.org/software/mailutils/
Description: GNU mailutils utilities for handling mail
 This package contains the GNU mailutils versions of dotlock, frm, from
 guimb, mail, messages, mimeview, movemail, readmsg and sieve. They are
 capable of speaking POP3, IMAP, mbox, MH and Maildir.
 .
  dotlock -- lock mail spool files.
  frm -- display From: lines.
  from -- display from and subject.
  guimb -- process the contents of the specified mailboxes using a Scheme
           program or expression.
  mail -- the standard /bin/mail interface, mail sender and reader.
  messages -- count the number of messages in a mailbox.
  mimeview -- display files, using mailcap mechanism.
  movemail -- move messages across mailboxes.
  readmsg -- extract selected messages from a mailbox.
  sieve -- a mail filtering tool.

Не подойдёт? (=

GotF ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.