use strict;
use warnings;
use Net::IMAP::Simple;

$| = 1;

my $imap;
# open a connection to the IMAP server
$imap = new Net::IMAP::Simple('mail.foo.bar')
or die $imap->errstr();

# login
$imap->login('user', 'geheim')
or die $imap->errno(),$imap->errstr();

# select the desired folder
my $num = $imap->select('INBOX');

print $num," Nachrichten\n";
print "Server flags: " . join(", ", $imap->flags()) . "\n";
print "Recent      : " . $imap->recent() . "\n";
print "Current     : " . $imap->current_box() . "\n";

my @folders = $imap->mailboxes('imap/*');

# Mal sehen, was da so drin ist
foreach my $folder (@folders)
  {
  my $count = $imap->select($folder);
  $count = 0 unless(defined $count);
  printf("%-30s hat %5d Nachrichten\n",$folder,$count);
  }

# neuen Mailfolder anlegen
print "Created!\n" if ($imap->create_mailbox("imap/Labersuelz"));

# anmelden
print "Subscribed!\n" if ($imap->folder_subscribe("imap/Labersuelz"));

# abmelden
print "Unsubscribed!\n" if ($imap->folder_unsubscribe("imap/Labersuelz"));

# den Mailfolder umbenennen
print "Renamed!\n" if ($imap->rename_mailbox("imap/Labersuelz", "imap/Blafasel"));

# und gleich wieder loeschen
print "Deleted!\n" if ($imap->delete_mailbox("imap/Blafasel"));

# close the connection
$imap->quit();