imapsync/W/learn/file_append
Nick Bebout 852d9695d6 1.920
2019-07-02 18:20:46 -05:00

67 lines
1.6 KiB
Perl
Executable file

#!/usr/bin/perl
use warnings;
use strict;
use English;
use Mail::IMAPClient;
my $rcs = '$Id: append,v 1.1 2011/07/14 16:49:02 gilles Exp gilles $ ';
main();
sub main {
$ARGV[4] or die "usage: $0 host user password folder file\n";
my $host = $ARGV[0];
my $user = $ARGV[1];
my $password = $ARGV[2];
my $folder = $ARGV[3];
my $file = $ARGV[4];
my $imap = Mail::IMAPClient->new();
$imap->Debug(1);
$imap->Server($host);
#$imap->Ssl(1);
$imap->connect() or die;
$imap->User($user);
$imap->Password($password);
$imap->login() or die;
$imap->Uid(1);
$imap->Peek(1);
$imap->Clear(0);
print map {"$_\n"} $imap->folders();
$imap->select($folder) or $imap->create($folder) or die;
$imap->select($folder) ;
my @msgs = $imap->messages ;
print "LIST: @msgs\n";
my $msgtext = file_to_string( $file ) || die ;
my $new_id_1b = $imap->append_string( $folder, $msgtext ) ;
print "==== OK 1b $new_id_1b\n" if $new_id_1b ;
@msgs = $imap->messages ;
print "LIST: @msgs\n";
$imap->close();
}
sub file_to_string {
my $file = shift ;
if ( ! $file ) { return ; }
if ( ! -e $file ) { return ; }
if ( ! -f $file ) { return ; }
if ( ! -r $file ) { return ; }
my @string ;
if ( open my $FILE, '<', $file ) {
@string = <$FILE> ;
close $FILE ;
return( join q{}, @string ) ;
}else{
myprint( "Error reading file $file : $OS_ERROR\n" ) ;
return ;
}
}