Модераторы: korob2001, ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Mime::Parser! Тело письма. Не распознает тело письма! 
:(
    Опции темы
antananarivu
Дата 1.7.2010, 16:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 48
Регистрация: 25.6.2010

Репутация: нет
Всего: нет



Есть вот такое письмо:


Код

Received: from gw1.next-line.ru (gw1.next-line.ru [89.179.136.51])
    by mail.nextline.ru (Postfix) with ESMTP id E91263120DBD
    for <[email protected]>; Tue,  8 Jun 2010 06:10:44 +0400 (MSD)
Envelope-to: [email protected]
Delivery-date: Tue, 08 Jun 2010 06:05:39 +0400
Received: from [89.108.67.18] (helo=f5.relay.agava.net)    by cp127.agava.net
    with esmtp (Exim 4.69 (FreeBSD))    (envelope-from <[email protected]>)
    id 1OLoCB-0006sd-CL    for [email protected]; Tue, 08 Jun 2010 06:05:39 +0400
Received: from f5.relay.agava.net (unknown [10.0.0.1])
    by f5.relay.agava.net (Postfix) with ESMTP id DD34DA61354;
    Tue,  8 Jun 2010 06:07:44 +0400 (MSD)
X-Virus-Scanned: AGAVA Mail Filter at cluster.relay.agava.net
Received: from mail.rtds.ru ([62.112.126.90]:48077)    by f5.relay.agava.net
    with esmtp (Exim 4.71 (FreeBSD))    (envelope-from <[email protected]>)
    id 1OLoE9-0007pM-9q; Tue, 08 Jun 2010 06:07:41 +0400
Received: from [192.168.5.252] (helo=mx.rtds)    by mail.rtds.ru
    with esmtps (TLS-1.0:RSA_AES_256_CBC_SHA1:32)    (Exim 4.63)    (envelope-from <[email protected]>)
    id 1OLoEL-0002Mq-Uo; Tue, 08 Jun 2010 06:07:54 +0400
Received: from [192.168.5.252] (helo=puppis.rtds)    by mx.rtds
    with esmtp (Exim 4.68)    (envelope-from <[email protected]>)
    id 1OLoEL-0002Mb-KN; Tue, 08 Jun 2010 06:07:53 +0400
Received: from [192.168.5.101] (helo=dbsvr.rtds) by mx.rtds
    with esmtps (TLS-1.0:RSA_AES_256_CBC_SHA1:32)    (Exim 4.68) (envelope-from <[email protected]>)
    id 1OLoEK-0002MJ-5w    for [email protected]; Tue, 08 Jun 2010 06:07:52 +0400
Received: from firebird by dbsvr.rtds
    with local (Exim 4.63) (envelope-from <[email protected]>)
    id 1OLoEK-0002Pr-1u; Tue, 08 Jun 2010 06:07:52 +0400
Subject: List of existents parts;RTDS
 VOLVO;VOLVO;Obrucheva,52,tel:718-6677;1;08/06/2010
To: [email protected], [email protected]
X-Mailer: mail (GNU Mailutils 1.1)
Message-Id: <[email protected]>
Date: Tue, 08 Jun 2010 06:07:52 +0400
From: active volvo list <[email protected]>
X-BeenThere: [email protected]
X-Mailman-Version: 2.1.9
Precedence: list
Reply-To: [email protected]
List-Id: active volvo list <volvoslist.rtds.ru>
List-Unsubscribe: <https://mailman.rtds/cgi-bin/listinfo/volvoslist>,
    <mailto:[email protected]?subject=unsubscribe>
List-Archive: <https://mailman.rtds/cgi-bin/private/volvoslist>
List-Post: <mailto:[email protected]>
List-Help: <mailto:[email protected]?subject=help>
List-Subscribe: <https://mailman.rtds/cgi-bin/listinfo/volvoslist>,
    <mailto:[email protected]?subject=subscribe>
Sender: [email protected]
Errors-To: [email protected]
Return-Path: [email protected]
MIME-Version: 1.0

1161056;0.9;1784.16
1161059;16.1;1987.12
1161075;0.8;620.68
1161347;1;737.5
1161397;1;1821.92
1161409;4;5815.04
1161436;15.4;903.88
1161521;19.7;719.8
1161540;393;1171.74
1161620;0.2;931.02
1161621;15.15;2803.68
1161627;6;1163.48
1161631;40;2624.32


При этом все, что идет после строки "MIME-Version: 1.0" - это тело письма. Стандартные программы (Outlook и т. д.) каким то образом корректно это дело отображают и понимают. Mime::Parser же выдает следующее:

Код

my $entity = $parser->parse_data($p_stdin);
...
...
return $entity->parts


Вернет 0. То есть он считает, что кроме заголовка у этого письма и нет ничего.

Заголовок письма - subject, from, - все корректно. Но тело письма не видит в упор. 


Можно ли заставить MIME::Parser корректно работать с таким письмом?

Заранее спасибо!


Это сообщение отредактировал(а) antananarivu - 1.7.2010, 17:01
PM MAIL   Вверх
arto
Дата 1.7.2010, 17:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1495
Регистрация: 31.10.2004

Репутация: 38
Всего: 40



почему вы считаете, что там есть mime-инкапсуляция?
PM MAIL ICQ   Вверх
antananarivu
Дата 1.7.2010, 23:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 48
Регистрация: 25.6.2010

Репутация: нет
Всего: нет



Я не очень понимаю, что такое майм инкапсуляция.

Есть письмо которое сохранено в Postges. Это письмо корректно воспринимается Outlook. Как и тысяча других писем, приходящих на почту. И тайм парсер корректно обрабатывает уйму писем. А вот в данном случае почему то считает что тела у письма нет. Хотя по стандарту вроде как достаточно того чтобы тело было отделено от заголовка пустой строкой. А оно в данном случае отделено.  
PM MAIL   Вверх
arto
Дата 1.7.2010, 23:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1495
Регистрация: 31.10.2004

Репутация: 38
Всего: 40



тело отделено.
майма нет.
парсер честно отвечает, что ничего не нашел.
чего вы ожидаете?
PM MAIL ICQ   Вверх
antananarivu
Дата 2.7.2010, 08:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 48
Регистрация: 25.6.2010

Репутация: нет
Всего: нет



arto, 

можете нормально объяснить?
согласно стандарту тело письма должно быть отделено от заголовка пустой строкой.
мне надо распарсить письмо. 
есть стандартный MIME::parser. есть письмо от поставщика. заставить парсер работать с таким типом писем невозможно?
писать обработчик вручную?

P.S. MIME-Version: 1.0 - значит майм есть, разве не так?


Это сообщение отредактировал(а) antananarivu - 2.7.2010, 08:31
PM MAIL   Вверх
Jimy
Дата 4.7.2010, 10:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 177
Регистрация: 4.7.2010

Репутация: нет
Всего: 3



как я понял этот модуль тело письма сохраняет в отдельный (типа, временный?) файл путь к которому хранится в $entity->{'ME_Bodyhandle'}->{'MB_Path'}
получить тело соответственно можно так:
Код

my $parser = new MIME::Parser;
$entity = $parser->parse_data($p_stdin);
open (MAILBODY, "<$entity->{'ME_Bodyhandle'}->{'MB_Path'}");
print <MAILBODY>;
close MAILBODY;


PM   Вверх
arto
Дата 6.7.2010, 15:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1495
Регистрация: 31.10.2004

Репутация: 38
Всего: 40



у вас в письме нет content-type, чтобы определить, что у вас там.
PM MAIL ICQ   Вверх
antananarivu
Дата 6.7.2010, 18:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 48
Регистрация: 25.6.2010

Репутация: нет
Всего: нет



Цитата(arto @ 6.7.2010,  15:19)
у вас в письме нет content-type, чтобы определить, что у вас там.

а как мне тогда обработать такое сообщение? добраться до тела? ручками? 
я в принципе так и сделал. загнал все письмо в переменную и сплитом отрезал все по пустой строке.
просто мне хотелось сделать это с помощью стандартного парсера. 
насколько я понимаю с помощью него никак?

PM MAIL   Вверх
arto
Дата 6.7.2010, 18:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1495
Регистрация: 31.10.2004

Репутация: 38
Всего: 40



попробуйте добавить в заголовки правильный content-type, если вам обязательно нужен mime-parser.
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0512 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.