Beefy Boxes and Bandwidth Generously Provided by pair Networks
Pathologically Eclectic Rubbish Lister
 
PerlMonks  

Geting attached files of emails (POP3)

by MiDgArD (Novice)
on Dec 27, 2006 at 15:45 UTC ( #591866=perlquestion: print w/replies, xml ) Need Help??

MiDgArD has asked for the wisdom of the Perl Monks concerning the following question:

Hi,
How i can get the attached files of a mail message?

My CODE:


#!/usr/bin/perl $homedir='/home/celflog/www/teste'; use Mail::POP3Client; use IO::File; use Mail::Message::Attachment::Stripper; $pop = new Mail::POP3Client( USER => 'myuser', PASSWORD => "mypass", HOST => "mail.server.com" ); $msg=$pop->Retrieve(1); print "$msg"; $m = Mail::Message::Attachment::Stripper->new($msg); @attachments = $m->attachments; foreach $a(@attachments) { next if $a->{content_type} !~ /jpeg|jpg/i; # Ignore invalids attached files $f = new IO::File "$homedir" . $a->{filename}, "w" or die "Can not +create file!"; print $f $a->{payload}; }
He don't work ...

20061227 Janitored by Corion: Added code tags as per Writeup Formatting Tips

Replies are listed 'Best First'.
Re: Geting attached files of emails (POP3)
by roboticus (Chancellor) on Dec 27, 2006 at 15:48 UTC
      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?
        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

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: perlquestion [id://591866]
Approved by Corion
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others making s'mores by the fire in the courtyard of the Monastery: (9)
As of 2019-11-12 16:12 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    Strict and warnings: which comes first?



    Results (66 votes). Check out past polls.

    Notices?