ispman/lib mailbox_actions.lib, NONE, 1.1 mailbox_actions_courier.lib, NONE, 1.1 mailbox_actions_cyrus.lib, NONE, 1.1 create_mailbox.lib, 1.4, NONE create_mailbox_courier.lib, 1.6, NONE create_mailbox_cyrus.lib, 1.5, NONE cyrusadmin.pm, 1.3, NONE delete_mailbox.lib, 1.3, NONE delete_mailbox_courier.lib, 1.3, NONE delete_mailbox_cyrus.lib, 1.3, NONE set_mailbox_quota.lib, 1.3, NONE set_mailbox_quota_courier.lib, 1.3, NONE set_mailbox_quota_cyrus.lib, 1.3, NONE
Joerg Delker <[email protected]>
| Newsgroups | gmane.comp.isp.ispman.cvs |
|---|---|
| Message-ID | <[email protected]> |
Update of /cvsroot/ispman/ispman/lib
In directory sc8-pr-cvs2.sourceforge.net:/tmp/cvs-serv25433/lib
Added Files:
mailbox_actions.lib mailbox_actions_courier.lib
mailbox_actions_cyrus.lib
Removed Files:
create_mailbox.lib create_mailbox_courier.lib
create_mailbox_cyrus.lib cyrusadmin.pm delete_mailbox.lib
delete_mailbox_courier.lib delete_mailbox_cyrus.lib
set_mailbox_quota.lib set_mailbox_quota_courier.lib
set_mailbox_quota_cyrus.lib
Log Message:
completely refurbished mailbox stuff
--- set_mailbox_quota.lib DELETED ---
--- delete_mailbox_cyrus.lib DELETED ---
--- create_mailbox.lib DELETED ---
--- NEW FILE: mailbox_actions_courier.lib ---
# All mailbox actions necessary for Courier IMAP Server
sub create_mailbox {
my $server = shift;
my $uid = shift;
my $imapMailboxPrefix = $ispman->getConf("imapMailboxPrefix");
# remove the imapMailboxPrefix if present in the beginning of the uid
# for example if the uid is Maildir/aghaffar_ispman_org, change it to
# aghaffar_ispman_org
$uid =~ s/^$imapMailboxPrefix//;
$ispman->getUserInfo($uid);
my $homeDirectory = $ispman->{'userinfo'}{$uid}{'homeDirectory'};
my $uidNumber = $ispman->{'userinfo'}{$uid}{'uidNumber'};
my $gidNumber = $ispman->{'userinfo'}{$uid}{'gidNumber'};
my @commands = ();
push @commands,
"mkdir -p $homeDirectory/$imapMailboxPrefix/tmp $homeDirectory/$imapMailboxPrefix/cur $homeDirectory/$imapMailboxPrefix/new";
push @commands,
"chown $uidNumber\.$gidNumber $homeDirectory/$imapMailboxPrefix/tmp $homeDirectory/$imapMailboxPrefix/cur $homeDirectory/$imapMailboxPrefix/new $homeDirectory/$imapMailboxPrefix";
push @commands, "chmod -R 700 $homeDirectory/$imapMailboxPrefix";
for (@commands) {
system($_);
}
}
sub delete_mailbox {
my $server = shift;
my $mailbox = shift;
# courier users:
# please add the logic here to set quota if necessary
print STDERR "delete_mailbox not implemented!" return 1;
}
sub get_quota {
my $server = shift;
my $mailbox = shift;
# courier users:
# please add the logic here to set quota if necessary
print STDERR "delete_mailbox not implemented!" return 1;
}
sub set_quota {
my $server = shift;
my $mailbox = shift;
my $quota = shift;
# courier users:
# please add the logic here to set quota if necessary
print STDERR "delete_mailbox not implemented!" return 1;
}
sub list_mailboxes {
my $server = shift;
my $filter = shift;
# courier users:
# please add the logic here to set quota if necessary
print STDERR "delete_mailbox not implemented!" return 1;
}
1;
--- delete_mailbox.lib DELETED ---
--- set_mailbox_quota_cyrus.lib DELETED ---
--- NEW FILE: mailbox_actions_cyrus.lib ---
# All mailbox actions necessary for Cyrus IMAP Server
use IMAP::Admin;
# imap connection handle
my $imap_conn;
my $imap_mailbox_prefix = $ispman->getConf("imapMailboxPrefix");
sub _connect {
my $server = shift;
$imap_conn = IMAP::Admin->new(
'Server' => $server,
'Port' => $ispman->getConf("imapPort") || 143,
'Login' => $ispman->getConf("imapAdminUsername"),
'Password' => $ispman->getConf("imapAdminPass")
);
}
sub create_mailbox {
my $server = shift;
my $mailbox = $imap_mailbox_prefix . shift;
$imap_conn or _connect($server);
return $imap_conn->create($mailbox);
}
sub delete_mailbox {
my $server = shift;
my $mailbox = $imap_mailbox_prefix . shift;
$imap_conn or _connect($server);
$imap_conn->set_acl( $mailbox, $ispman->getConf("imapAdminUsername"),
"lrswipcda" );
return $imap_conn->delete($mailbox);
}
sub get_quota {
my $server = shift;
my $mailbox = $imap_mailbox_prefix . shift;
$imap_conn or _connect($server);
return $imap_conn->get_quota($mailbox);
}
sub set_quota {
my $server = shift;
my $mailbox = $imap_mailbox_prefix . shift;
my $quota = shift;
$imap_conn or _connect($server);
return $imap_conn->set_quota( $mailbox, $quota );
}
sub list_mailboxes {
my $server = shift;
my $filter = shift;
$imap_conn or _connect($server);
return $imap_conn->list($filter);
}
END {
$imap_conn->close();
}
1;
--- set_mailbox_quota_courier.lib DELETED ---
--- create_mailbox_courier.lib DELETED ---
--- delete_mailbox_courier.lib DELETED ---
--- cyrusadmin.pm DELETED ---
--- NEW FILE: mailbox_actions.lib ---
# Wrapper script for all mailbox actions
# Depending on configured imapServerBackend, the appropiate library is loaded
use ISPMan;
$ispman = ISPMan->new() unless $ispman;
# determine imap backend
my $imapServerBackend = $ispman->getConf("imapServerBackend");
# load mailbox functions for this particular type
require "mailbox_actions_$imapServerBackend.lib";
# helper function to convert email into uid notation
sub email2uid {
my $str = shift;
( $uid, $domain ) = split( '@', $str );
if ($domain) {
$domain =~ s/\./_/g;
$str = join '_', ( $uid, $domain );
}
return $str;
}
1;
--- create_mailbox_cyrus.lib DELETED ---
-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642