Hi,
Yes, the message posses a attached file "photo.jpg"
When I execute he under Shell, he return this:
Need a message at test.cgi line 23
Line 23: $m = Mail::Message::Attachment::Stripper->new($msg);
In the line 14: print "$msg";
He shown the message as text plain
Exist another perl module?
| [reply] |
MiDgArD:
Based on that error message, I'd guess that either $msg doesn't contain a message at all (i.e., perhaps the line "$msg=$pop->Retrieve(1);" failed), or that it's in the wrong format. (The docs for Mail::POP3Client doesn't seem to tell what format the Retrieve method returns, but the docs for Mail::Message::Attachment::Stripper states that it wants the message in Mail::Message format.)
I'd suggest:
1) Using strict and warnings at the start of your program.
2) putting in a bit of error-checking, specifically checking to see if the Retrieve method fails, and whether it returns a properly formatted message...
I hope this helps...
--roboticus
| [reply] [d/l] |
NEW CODE:
#!/usr/bin/perl
my $homedir='/home/celflog/www/teste';
use strict;
use Mail::POP3Client;
use IO::File;
use Mail::Message::Attachment::Stripper;
my $pop = new Mail::POP3Client(
USER => 'myuser',
PASSWORD => "mypass",
HOST => "mail.server.com"
);
my $msg=$pop->Retrieve(1), or die "$_\n";
print "$msg";
my $m = Mail::Message::Attachment::Stripper->new($msg);
my @attachments = $m->attachments;
foreach my $a(@attachments) {
next if $a->{content_type} !~ /jpeg|jpg/i;
# Ignore invalids attached files
my $f = new IO::File "$homedir" . $a->{filename}, "w" or die "Can not create file!";
print $f $a->{payload};
}
He continue showing: Need a message at teste.cgi line 25
| [reply] |