Forum Webscript.Ru

Программирование => Perl => Тема начата: Skif от 09 Июня 2005, 12:07:03

Название: Email::MIME::Attachment::Stripper
Отправлено: Skif от 09 Июня 2005, 12:07:03
Вот столкнулся с такой вот проблемой:


#!/usr/bin/perl -w

use Mail::Sender;
use Mail::POP3Client;
#use Email::MIME;
use Email::MIME::Attachment::Stripper;
open (FF, "/tmp/mess");
while (){
$message .= $_;
}
close (FF);

my $stripper = Email::MIME::Attachment::Stripper->new($message);

my Email::MIME $msg = $stripper->message;

my @attachments = $stripper->attachments;
foreach my $hash (@attachments) {
print "\\n1\\n";
print $hash->{\'filename\'} ;
print "\\n2\\n";
print $hash->{\'content_type\'} ;
     $data_from_file = $hash->{\'payload\'};
print $data_from_file;
}
exit(0);

 


Выводит все нормально. и имя заатаченного файла и его содержимое... Тоесть проблем как бы нет, если бы не одно маленькое НО:

Цитировать

[root@skif.bsd] /usr/local/script/smtp/bin/:./smtp_send.pl
Illegal Content-Type parameter  at /usr/local/lib/perl5/site_perl/5.8.5/Email/MIME.pm line 13
Illegal Content-Type parameter at  /usr/local/lib/perl5/site_perl/5.8.5/Email/MIME/Attachment/Stripper.pm line 115

1
rc.conf
2
application/octet-stream
# -- sysinstall generated deltas -- # Thu May  5 17:03:04 2005
# Created: Thu May  5 17:03:04 2005
# Enable network daemons for user convenience.
# Please make all changes to this file, not to /etc/defaults/rc.conf.
# This file now contains just the overrides from /etc/defaults/rc.conf.
defaultrouter="10.0.43.1"
font8x14="cp866u-8x14"
...................

Тоесть скрипт отрабатывает. показывает содержимое письма, но перед этим плюется:

Illegal Content-Type parameter  at /usr/local/lib/perl5/site_perl/5.8.5/Email/MIME.pm line 13
Illegal Content-Type parameter  at /usr/local/lib/perl5/site_perl/5.8.5/Email/MIME/Attachment/Stripper.pm line 115

ВОт только немогу понять почему? Может нужно сначала после считывания из файла данные как-то конвертануть?
Название: Email::MIME::Attachment::Stripper
Отправлено: NeoNox от 09 Июня 2005, 13:35:20
Этот варнинг приходит от ...Email/MIME/ContentType.pm
Цитировать
s/^([^$tspecials]+)=// or do { carp "Illegal Content-Type parameter $_";
                                       return $attribs; };


Я не совсем понимаю зачем эта проверка. Нужно разбираться. А пока, думаю, or do и далее можно безболезненно закомментировать.
Название: Email::MIME::Attachment::Stripper
Отправлено: Skif от 09 Июня 2005, 15:07:50
Спасибо