Archive

Posts Tagged ‘postfix’

Скрипт создания почтового ящика для 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";

почта ,

postfix и cyrus создание ящика

December 9th, 2008
saslpasswd2 -c support@domain.com
cyradm -u admin localhost
mail3.domain.com> cm user/support@domain.com
mail3.domain.com> sam user/support@domain.com support@domain.com all
mail3.domain.com> sam user/support@domain.com admin c
mail3.domain.com> sq user/support@domain.com STORAGE 300000
mail3.domain.com> quit

добавить строку в файл virtual

postmap ./virtual

Если добавляешь домен:
прописать в virtdomains

postmap ./virtdomains

прописать в imapd.conf

/usr/local/etc/rc.d/imapd restart

Для тестирования работы связки можно использовать:

sasldblistusers2 # список юзеров в сасл-базе
imtest -u user@domain.com -w password mail.domain.com # пробуем локально зайти

Экспортировать список пользователей с паролями из sasdb базы в удобочитаемый вид можно так:

db41_dump -p ./sasldb2 | sed 's/\\00/@/g' | sed 's/@userPassword//g'

почта , , ,