Скрипт создания почтового ящика для Cyrus SASL Postfix
July 10th, 2009
Вызывать надо с параметром необходимого почтового ящика.
#!/usr/bin/perl -w
use Cyrus::IMAP::Admin;
my $server="mail.server.com";
my $admin="admin";
my $password="password";
my $quota="300000";
my $client = Cyrus::IMAP::Admin->new($server);
my $user=$ARGV[0];
if($user eq ""){
print 'syntax: create_mail.pl test@test.com';
die;
}
@chars = ("A" .. "Z", "a" .. "z", 0 .. 9);
$userpass = join("", @chars[ map{ rand @chars }(1 .. 10) ]);
system("/bin/echo $userpass | /usr/local/sbin/saslpasswd2 -p -c $user");
system("/bin/echo $user $user >> /usr/local/etc/postfix/virtual");
system("/usr/local/sbin/postmap /usr/local/etc/postfix/virtual");
$client->authenticate(-mechanism => "LOGIN",-user => $admin,-password => $password);
$rc = $client->create("user/$user");
$rc = $client->setacl("user/$user","$user" => 'all');
$rc = $client->setacl("user/$user",'admin' => 'all');
$rc = $client->setquota("user/$user",'STORAGE' => $quota);
print "User: $user Password: $userpass";
use Cyrus::IMAP::Admin;
my $server="mail.server.com";
my $admin="admin";
my $password="password";
my $quota="300000";
my $client = Cyrus::IMAP::Admin->new($server);
my $user=$ARGV[0];
if($user eq ""){
print 'syntax: create_mail.pl test@test.com';
die;
}
@chars = ("A" .. "Z", "a" .. "z", 0 .. 9);
$userpass = join("", @chars[ map{ rand @chars }(1 .. 10) ]);
system("/bin/echo $userpass | /usr/local/sbin/saslpasswd2 -p -c $user");
system("/bin/echo $user $user >> /usr/local/etc/postfix/virtual");
system("/usr/local/sbin/postmap /usr/local/etc/postfix/virtual");
$client->authenticate(-mechanism => "LOGIN",-user => $admin,-password => $password);
$rc = $client->create("user/$user");
$rc = $client->setacl("user/$user","$user" => 'all');
$rc = $client->setacl("user/$user",'admin' => 'all');
$rc = $client->setquota("user/$user",'STORAGE' => $quota);
print "User: $user Password: $userpass";
