Анализатор сообщений Java POP3 без API JavaMail - PullRequest
2 голосов
/ 29 декабря 2011

Есть ли доступная библиотека синтаксического анализатора электронной почты или учебное пособие по реализации (без JavaMail API) для анализа сообщений следующего формата и получения таких полей, как FROM / SUBJECT / etc?

Я хочу проанализировать текстовый файл этих сообщений, полученных по протоколу POP3, в моем приложении и, наконец, отобразить их в html-файле.

пример сообщения:

-------------------- messsage 1, size=4234 --------------------
Return-path: <yyy@gmail.com>
Received: from mail-iy0-f171.google.com (mail-iy0-f171.google.com [209.85.210.171])
    by xxxmail.com (xxxmail.com)
    (MDaemon PRO v11.0.0)
    with ESMTP id md50000000053.msg
    for <xx@xxxmail.com>; Mon, 12 Dec 2011 22:55:39 +0330
Authentication-Results: xxxmail.com
    spf=pass smtp.mail=haghighi.fa@gmail.com;
    x-ip-ptr=pass dns.ptr=mail-iy0-f171.google.com (ip=x.x.x.x);
    x-ip-helo=pass smtp.helo=mail-iy0-f171.google.com (ip=x.x.x.x);
    x-ip-mail=hardfail smtp.mail=haghighi.fa@gmail.com (does not match x.x.x.x);
    x-vbr=hardfail header.vbr-info=gmail.com (domain not recognized);
    dkim=pass header.d=gmail.com (b=Cv+42gRZMW; 1:0:good);
Received-SPF: pass (xxxmail.com: domain of yyy@gmail.com
    designates x.x.x.x as permitted sender)
    x-spf-client=MDaemon.PRO.v11.0.0
    receiver=xxxmail.com
    client-ip=x.x.x.x
    envelope-from=<yyy@gmail.com>
    helo=mail-iy0-f171.google.com
X-Spam-Processed: xxxmail.com, Mon, 12 Dec 2011 22:55:39 +0330
    (not processed: sender in recipient's private address book)
X-MDPtrLookup-Result: pass dns.ptr=mail-iy0-f171.google.com (ip=x.x.x.x) (xxxmail.com)
X-MDHeloLookup-Result: pass smtp.helo=mail-iy0-f171.google.com (ip=x.x.x.x) (xxxmail.com)
X-MDMailLookup-Result: hardfail smtp.mail=yyy@gmail.com (does not match x.x.x.x) (xxxmail.com)
X-MDDKIM-Result: unapproved (xxxmail.com)
X-MDVBR-Result: not certified (xxxmail.com)
X-MDSPF-Result: unapproved (xxxmail.com)
X-Rcpt-To: xxx@xxxmail.com
X-MDRcpt-To: xxx@xxxmail.com
X-MDRemoteIP: x.x.x.x
X-Return-Path: yyy@gmail.com
X-Envelope-From: yyya@gmail.com
X-MDaemon-Deliver-To: xxx@xxxmail.com
Received: by iaen33 with SMTP id n33so35124825iae.30
        for <xxx@xxxmail.com>; Mon, 12 Dec 2011 11:28:52 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=gamma;
        h=mime-version:in-reply-to:references:date:message-id:subject:from:to
         :content-type;
        bh=SZ4ok7NaD3MuwvPJVzJAtsCaqSMeAJJ6Kq3AFI1elK8=;
        b=Cv+42gRZMW8gRSzCX11ToY/EnHTqzO2E5cWkJsnwj6JCapz5GXG2iIadjBkHyKuGkE
         i5cjPQyZXhHBg9ZfKRaWViSMqiaySvak7WA+yVf65JB2zEHykysFHbqbfPLG2CaRxXHi
         PVfJVURd5MHCLpSyCxeW25slIBOBqpWabuWj4=
MIME-Version: 1.0
Received: by 10.42.151.68 with SMTP id d4mr13014719icw.36.1323718132412; Mon,
 12 Dec 2011 11:28:52 -0800 (PST)
Received: by 10.43.49.67 with HTTP; Mon, 12 Dec 2011 11:28:52 -0800 (PST)
In-Reply-To: <4ee65516.85310e0a.43bf.238fSMTPIN_ADDED@mx.google.com>
References: <4ee65516.85310e0a.43bf.238fSMTPIN_ADDED@mx.google.com>
Date: Mon, 12 Dec 2011 11:28:52 -0800
Message-ID: <CAPGX6DbXDV-wFmbMcaw1rQVvrZGbBOnqPpJSNkwuhbrBFa=TRQ@mail.gmail.com>
Subject: Re: Hi :D
From: y y <yyy@gmail.com>
To: xxx@xxxmail.com
Content-Type: multipart/alternative; boundary=90e6ba6e872e10b18504b3ea252a
X-Antivirus: avast! (VPS 111228-0, 12/28/2011), Inbound message
X-Antivirus-Status: Clean

--90e6ba6e872e10b18504b3ea252a
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

=D8=A7=D9=84=D9=84=D9=87 =D9=88=D8=A7=D9=82=D8=B9=D9=86 =D8=A7=DA=A9=D8=A8=
=D8=B1=D9=87 :=D8=AF=DB=8C

On Mon, Dec 12, 2011 at 12:00 AM, <xxx@xxxmail.com> wrote:

>  Hi! this is the main text of the message :)
>
>
>

1 Ответ

0 голосов
/ 05 июня 2015

Я нашел эти примеры для POP3 и SMTP: http://inetjava.sourceforge.net/lectures/part1_sockets/InetJava-1.8-Email-Examples.html

Они не полагаются на Java Mail, они используют просто простой сокет. Посмотрите на getMessageHeaders (), чтобы получить информацию о полях FROM и SUBJECT.

...