Beefy Boxes and Bandwidth Generously Provided by pair Networks
Just another Perl shrine

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:

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


#!/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 => "" ); $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
      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?

        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...


Log In?

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

How do I use this? | Other CB clients
Other Users?
Others meditating upon the Monastery: (8)
As of 2020-09-18 13:28 GMT
Find Nodes?
    Voting Booth?
    If at first I donít succeed, I Ö

    Results (112 votes). Check out past polls.