Как мне удалить заголовки писем? - PullRequest
0 голосов
/ 22 октября 2009

Я изучаю Perl и делаю домашний проект для моей семьи (подписной проект). Приложение Perl, которое использует Net :: POP3, подключается к моему почтовому ящику и сохраняет все мои электронные письма в файл (Mail.txt). Когда я открываю этот файл, я вижу много мусора, как показано ниже. Что я могу сделать, чтобы удалить это? Спасибо.

Return-Path: 
Received: from [unix socket] by embro.tpn.terra.com (LMTP); Sun, 11 Oct 2009 04:09:50
    +0000 (UTC)
X-Abaca-Spam: 153
X-Terra-Karma: -2%
X-Terra-Hash: 2c7d32f717e807b11af5c0871edb9e93
Received-SPF: pass (embro.tpn.terra.com: domain of linuxquestions.org designates
    208.101.3.244 as permitted sender) client-ip=208.101.3.244;
    envelope-from=forum@linuxquestions.org; helo=sql02.linuxquestions.org;
Received: from sql02.linuxquestions.org (smtp.linuxquestions.org [208.101.3.244])
    by embro.tpn.terra.com (Postfix) with ESMTP id 14EA1580000A2
    for ; Sun, 11 Oct 2009 04:09:49 +0000 (UTC)
Received: from web02.linuxquestions.org (web02-be.linuxquestions.org [10.13.156.4])
    by sql02.linuxquestions.org (8.13.8/8.13.8) with ESMTP id n9B49mXe005694
    for ; Sun, 11 Oct 2009 00:09:48 -0400
DomainKey-Signature: a=rsa-sha1; s=smtp; d=linuxquestions.org; c=simple; q=dns;
    b=Le/RccpkHMfH426hLwlLkIbCujr0LiWKM32ryuZ1fWwYU6VjCTocd30N/JAg+w77d
    54VJkNnpA18iQxJ/yfKyQ==
Received: from web02.linuxquestions.org (localhost.localdomain [127.0.0.1])
    by web02.linuxquestions.org (8.13.8/8.13.8) with ESMTP id n9B49m2f027957
    for ; Sun, 11 Oct 2009 00:09:48 -0400
Received: (from nobody@localhost)
    by web02.linuxquestions.org (8.13.8/8.13.8/Submit) id n9B49mNn027956;
    Sun, 11 Oct 2009 00:09:48 -0400
Date: Sun, 11 Oct 2009 00:09:48 -0400
To: nathanpc@terra.com.br
Subject: "What programs would you like to see ported to Linux?" update
From: "LinuxQuestions.org" 
Auto-Submitted: auto-generated
Message-ID: 
X-Priority: 3
X-Mailer: LQ Mailer
Content-Type: text/plain; charset="ISO-8859-1"
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
Status: O

Dear nathanpc,

Ответы [ 3 ]

5 голосов
/ 22 октября 2009

Это не мусор. Это заголовок письма. Используйте, например, Mail :: Message для его анализа. Примерно так:

my $msg_obj = Mail::Message->read($rawdata); my $body = $msg_obj->body;
1 голос
/ 22 октября 2009

Вы знаете, я рекомендовал Mail :: POP3Client , который абстрагирует детали:

Body( MESSAGE_NUMBER )

В зависимости от контекста получить тело указанного сообщения в виде массива строк или строки.

BodyToFile( FILE_HANDLE, MESSAGE_NUMBER )

Получить тело указанного сообщения и записать его в указанный дескриптор файла.

0 голосов
/ 22 октября 2009

Заголовки электронной почты состоят из всего текста вплоть до первой полностью пустой строки. Так что, если вы действительно хотите выбросить их (вместо того, чтобы использовать хороший модуль для их анализа, как предлагалось в предыдущих примерах), просто отбросьте все до первой пустой строки, включая первую пустую строку.

Если вы просматриваете файл почтового ящика в формате mbox, содержащий несколько сообщений, вы можете определить начало заголовков следующего сообщения, посмотрев строку, которая начинается с пяти символов «От» (обратите внимание на завершающий пробел - это это то, что отличает его от заголовка "From:").

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...