imapsync/learn/fetch_with_size
Nick Bebout d88bf4b46a 1.398
2011-03-12 02:45:04 +00:00

54 lines
1.2 KiB
Perl
Executable file

#!/usr/bin/perl
use warnings;
use strict;
use English;
use Mail::IMAPClient;
$ARGV[3] or die "usage: $0 host user password folder uid\n";
my $host = $ARGV[0];
my $user = $ARGV[1];
my $password = $ARGV[2];
my $folder = $ARGV[3];
my $uid = $ARGV[4];
my $imap = Mail::IMAPClient->new();
$imap->Debug(0);
$imap->Server($host);
$imap->connect() or die;
$imap->User($user);
$imap->Password($password);
$imap->login() or die;
$imap->Uid(1);
$imap->Peek(1);
$imap->Clear(1);
#print map {"$_\n"} $imap->folders();
$imap->select($folder) or die;
my @msgs = $imap->messages or die "Could not messages: $@\n";
print "@msgs\n";
foreach my $msg (@msgs) {
$imap->fetch($msg, "BODY.PEEK[TEXT]<0.3000>");
my $text = $imap->_transaction_literals;
print '#' x 72, " $msg TEXT = \n$text\n";
my $part = $imap->bodypart_string($msg, '', 3000, 0);
print '#' x 72, " $msg PART = \n$part\n";
}
$imap->close();
package Mail::IMAPClient;
sub _transaction_literals() {
my $self = shift;
my $string = "";
foreach my $result (@{$self->{"History"}{$self->Transaction}}) {
$string .= $result->[DATA]
if defined($result) and $self->_is_literal($result) ;
}
return $string;
}