Beefy Boxes and Bandwidth Generously Provided by pair Networks
Problems? Is your data what you think it is?

Re^4: Geting attached files of emails (POP3)

by MiDgArD (Novice)
on Dec 27, 2006 at 17:36 UTC ( #591898=note: print w/replies, xml ) Need Help??

in reply to Re^3: Geting attached files of emails (POP3)
in thread Geting attached files of emails (POP3)

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 => ""

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
  • Comment on Re^4: Geting attached files of emails (POP3)

Replies are listed 'Best First'.
Re^5: Geting attached files of emails (POP3)
by chargrill (Parson) on Dec 27, 2006 at 18:10 UTC

    Hi MiDgArD,

    According to the documentation, Mail::Pop3Client::Retrieve gives you the head and body of an email message, and Mail::Message::Attachment::Stripper expects a Mail::Message object in it's constructor.

    You could try taking the $msg you get from Retrieve and constructing/building a Mail::Message object, like so:


    You know, I started reading through the documentation but realized it would take me a bit more time to fully understand it, and extract the bits I would need in order to help you with your task.

    I will recommend instead that you read the associated documentation that I have referenced above, and take the hints I allude to above (construct, build) to find the relevant documentation for your task of converting your message into a Mail::Messsage object. Otherwise, I would be inclined to use something I'm a bit more familiar with (or at least can state that I've used it before ;-) and give you a link for another way to carry out your task using Mime::Parser, with working code that strips jpeg attachments off of emails, though not coming through pop3 interface. That was written a long time ago, when I was first learning Mime::Parser, and thus has TONS of debugging output littered through the code. Perhaps this approach will be easier for you?

    s**lil*; $*=join'',sort split q**; s;.*;grr; &&s+(.(.)).+$2$1+; $; = qq-$_-;s,.*,ahc,;$,.=chop for split q,,,reverse;print for($,,$;,$*,$/)
      How i can use your code? I have access in the mail folder to open and list al data in this folder, My mail folder is located at "/home/celflog/mail/fotolog/cur" Or if you send a simple working example ... Thank you

        I'm happy to send you my hourly rate for doing this work for you.

        Otherwise, you've got half-working code of your own, several references to what is likely wrong with it, links to the documentation wherein you will find your answers, and a completely working hunk of code using a different approach.

        s**lil*; $*=join'',sort split q**; s;.*;grr; &&s+(.(.)).+$2$1+; $; = qq-$_-;s,.*,ahc,;$,.=chop for split q,,,reverse;print for($,,$;,$*,$/)

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://591898]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others perusing the Monastery: (5)
As of 2019-12-14 13:30 GMT
Find Nodes?
    Voting Booth?

    No recent polls found