#!/usr/bin/perl STDOUT->autoflush(1); STDERR->autoflush(1); use strict; use daveperl; my $debug = 1; my $s = 10; my $test_uid = undef; use Net::IMAP::Simple::SSL; my $server = 'localhost:1993'; sub get_src { my $src_username = 'hansendc@gmail.com'; $src_username = 'grp_testmailfm@intel.com'; $src_username = 'dave.hansen@intel.com'; my $src_pass = fetchmail_pass('fakeoutlook'); chomp $src_pass; my $imap_src = Net::IMAP::Simple->new($server, debug => "file:/home/dave/logs/imap-count-debug.log" ); $imap_src->login($src_username => $src_pass); printf("imap_src: '%s'\n", $imap_src); printf("imap_src->{sock}: '%s'\n", $imap_src->{sock}); printf("fileno(imap_src->{sock}): '%d'\n", defined fileno($imap_src->{sock})); dprintf3("about to list mailboxes\n"); my @mboxes = $imap_src->mailboxes; dprintf3("done listing mailboxes\n"); @mboxes = grep(/linuxmmtest/, @mboxes); printf("mbox: '%s' ", $mboxes[0]); my $src_nr_msgs = $imap_src->select($mboxes[0]); printf("%d IMAP messages\n", $src_nr_msgs); if (! defined $src_nr_msgs) { printf("undef src_nr_msgs, errstr: '%s'\n", $imap_src->errstr()); #exit(1); return; } #close($imap_src->{sock}); #printf("fileno(imap_src->{sock}): '%d'\n", defined fileno($imap_src->{sock})); return $imap_src; } sub flipit { my $imap_src1 = shift; my $uid = shift; my $seen = $imap_src1->uid_seen($uid); if ($seen) { printf("unsee $uid: %s\n", $imap_src1->uid_unsee($uid)); } else { printf(" see $uid: %s\n", $imap_src1->uid_see($uid)); } } sub set_flags { my $imap_src1 = shift; #my @uid_list = $imap_src->uidsearch('UNSEEN'); #foreach my $uid (@uid_list) { # printf("flag1 $test_uid: (%s)\n", join(",", $imap_src->uid_add_flags($uid, '\Flagged'))); #} #exit(2); #y @uid_list = $imap_src->uidsearch('ALL'); my @uid_list = $imap_src1->uidsearch('UNFLAGGED'); foreach my $uid (@uid_list) { $test_uid = $uid; printf(" see $uid: %s\n", $imap_src1->uid_add_flags($uid, '\Flagged')); if (defined $imap_src1->errstr()) { printf("saw errstr1: '%s'\n", $imap_src1->errstr()); return; } sleep($s); } } #$test_uid = 233308; if (! defined $test_uid) { my $imap_src1 = get_src(); while (!defined $imap_src1->errstr()) { set_flags($imap_src1); } } exit(3) if ! defined $test_uid; dprintf1("==============================================\n"); my $imap_src2 = get_src(); for (my $i = -5; $i < 10; $i++ ) { my $uid = $test_uid + $i; dprintf1("flags $uid: (%s)\n", join(",", $imap_src2->uid_flags($uid))); }