imap.pm
branchfoerste-cms
changeset 72 66bf85163780
parent 0 2a5f2464f8c6
equal deleted inserted replaced
36:59c7146ec6f0 72:66bf85163780
     4     my $mbox = "user/$user";
     4     my $mbox = "user/$user";
     5 
     5 
     6     verbose(" imap:");
     6     verbose(" imap:");
     7     my $imap = connectImap();
     7     my $imap = connectImap();
     8 
     8 
     9     $imap->setacl($mbox, $Cf->imap_admin => "lrswipcda");
     9     $imap->setacl( $mbox, $Cf->imap_admin => "lrswipcda" );
    10     if ($imap->list($mbox)) {
    10     if ( $imap->list($mbox) ) {
    11 	verbose("(exists)");
    11         verbose("(exists)");
    12     } else {
    12     } else {
    13 	$imap->create($mbox) or die ":$@: $mbox\n";
    13         $imap->create($mbox) or die ":$@: $mbox\n";
    14 	$imap->setquota($mbox, STORAGE => 1024 * $Cf->imap_quota) or die ":$@: $mbox\n";
    14         $imap->setquota( $mbox, STORAGE => 1024 * $Cf->imap_quota )
       
    15           or die ":$@: $mbox\n";
    15     }
    16     }
    16     verbose("ok");
    17     verbose("ok");
    17 
    18 
    18 }
    19 }
    19 
    20 
    21     my $user = shift;
    22     my $user = shift;
    22     my $mbox = "user/$user";
    23     my $mbox = "user/$user";
    23     verbose(" imap:");
    24     verbose(" imap:");
    24     my $imap = connectImap();
    25     my $imap = connectImap();
    25 
    26 
    26     $imap->setacl($mbox, $Cf->imap_admin, "rc");
    27     $imap->setacl( $mbox, $Cf->imap_admin, "rc" );
    27 
    28 
    28     if (not $imap->exists($mbox)) {
    29     if ( not $imap->exists($mbox) ) {
    29 	verbose("does not exist");
    30         verbose("does not exist");
    30     } else {
    31     } else {
    31 	$imap->delete($mbox) or die "$@";
    32         $imap->delete($mbox) or die "$@";
    32     }
    33     }
    33     verbose("ok");
    34     verbose("ok");
    34 }
    35 }
    35 
    36 
    36 
       
    37 sub connectImap() {
    37 sub connectImap() {
    38     my $imap = new Cyrus::IMAP::Admin($Cf->imap_server) or die "$@";
    38     my $imap = new Cyrus::IMAP::Admin( $Cf->imap_server ) or die "$@";
    39     $imap->authenticate(-user => $Cf->imap_admin,
    39     $imap->authenticate(
    40 	-password => $ENV{IMAP_PASS} || askPass("IMAP (" . $Cf->imap_admin .") password: "));
    40         -user     => $Cf->imap_admin,
       
    41         -password => $ENV{IMAP_PASS}
       
    42           || askPass( "IMAP (" . $Cf->imap_admin . ") password: " )
       
    43     );
    41 
    44 
    42     return $imap;
    45     return $imap;
    43 }
    46 }
    44 
    47