From: Lubimez
Newsgroups: admin at lubimez.tomsk.ru
Date: Mon, 8 Sep 2004 14:31:37 +0000 (UTC)
Subject: Настройка Postfix и Cyrus-Imap с хранением базы пользователей в MySQL
Оригинал: http://lubimez.tomsk.ru/postfix/
Установка mysql-server version 4.0.18 (можно версии ниже.. )
cd /usr/posts/databases/mysql40-server/
make install clean
создать базу mail
create database mail;
use mail;
Таблица алиасов
CREATE TABLE aliases (
email varchar(128) NOT NULL default '',
alias varchar(128) NOT NULL default '',
listid int(10) unsigned NOT NULL default '0',
info varchar(150) NOT NULL default ''
) TYPE=MyISAM;
Список
CREATE TABLE lists (
listid int(10) unsigned NOT NULL auto_increment,
name varchar(50) NOT NULL default '',
info varchar(150) NOT NULL default '',
PRIMARY KEY (listid)
) TYPE=MyISAM;
Таблица с учетными записями
CREATE TABLE users (
email varchar(128) NOT NULL default '',
passwd varchar(128) NOT NULL default '',
enabled tinyint(4) NOT NULL default '1',
name varchar(150) default NULL,
info varchar(150) default NULL,
PRIMARY KEY (email)
) TYPE=MyISAM;
Предоставляем права для юзера mail
grant select,insert,update,delete,create,drop on mail.* to mail@localhost identified by 'mail';
далее ставим cyrus-imapd2
cd /usr/ports/mail/cyrus-imapd2
делай патч
make patch
далее заходим в каталог /usr/ports/mail/cyrus-imapd2/work/cyrus_версия_х_х_/imap
открываем файл message.c
ee message.c
ищем 'Х' для этого жмем ctrl-y и набираем в строке поиска 'X'
меняем
if (inheader && *p >= 0x80) {
на
if (0 && inheader && *p >= 0x80) {
таким же образом меняем в файле lmtpengine.c
if (c >= 0x80) {
на
if (0 && c >= 0x80) {
далее устанавливаем cyrus-imapd2 /usr/ports/mail/cyrus-imapd2
make install clean
устанавливаем cyrus-sasl2
cd /usr/ports/security/cyrus-sasl2
собираем для работы с мускулом (с флагом with_mysql=yes)
make FORCE_PKG_REGISTER=yes WITH_MYSQL=yes
инсталируем
make install
или
make WITH_MYSQL=YES FORCE_PKG_REGISTER=YES install clean
ну и на конец самое основное - ставим postfix
cd /usr/ports/mail/postfix
make install clean
выбрать sasl2 и mysql
на все вопросы отвечаем y (при добавлении в mailer.conf и др.)
а теперь приступим к самому главному-- НАСТРОЙКЕ
идемс в /usr/local/etc/postfix (или куда вы тама ставили при
конфигурировании)
открываем файл main.cf и... удаляем тама все.-)))
пишем туда ниже следующее (пишете все точно. даже пробелы в начале
строки, где указано)
далее создадим файл mysql-local.cf в той же директории и пишем там
user = mail (юзер которому вы предоставляли право на базу)
password = mail (пароль)
dbname = mail (если вы создавали другую пишите её)
table = users
select_field = email
where_field = email
additional_conditions = and enabled = 1
hosts = localhost (если на другой тачке стоит, то пишем её)
таким же образом создадим файл mysql-aliases.conf и пишем
user = mail (юзер которому вы предоставляли право на базу)
password = mail (пароль)
dbname = mail (если вы создавали другую пишите её)
table = aliases ( таблица)
select_field = alias
where_field = email
hosts = localhost (если на другой тачке стоит, то пишем её)
в файле master.cf проверить запись cyrus, одна должна быть такой
cyrus unix - n n - - pipe
user=cyrus argv=/usr/local/cyrus/bin/deliver -e -r ${sender} -m
${extension} ${user}
создаем файл /usr/local/etc/imapd.conf и пишем в нем следующее
# чтоб не различал регистр почтового ящика
lmtp_downcase_rcpt: 1
# чтоб врга брутфорсом не перебрал
plaintextloginpause: 2
# чтоб не тусились в очереди письма для аккаунта с превышенной квотой
lmtp_overquota_perm_failure: yes
# Директория с конфигурацией
configdirectory: /var/imap
partition-default: /var/spool/imap
quotawarn: 95
# Суперпользователь для IMAP-а
admins: cyrus
# Автоматически давать права админу на созданный аккаунт
defaultacl: cyrus lrswipcda
# Стандартная квота ~10 мег
autocreatequota: 10000
logtimestamps: yes
# по идее совсем не нужно
reject8bit: no
postmaster: postmaster
# MySQL
sasl_pwcheck_method: auxprop
sasl_auxprop_plugin: sql
sasl_sql_engine: mysql
sasl_mech_list: plain login cram-md5 digest-md5
sasl_sql_user: mail (юзер которому вы предоставляли право на базу)
sasl_sql_passwd: mail (пароль)
sasl_sql_database: mail (если вы создавали другую пишите её)
sasl_sql_hostnames: localhost
sasl_sql_select: SELECT passwd FROM users WHERE email = LOWER('%u') AND enabled = 1
sasl_log_level: 255
содаем файл /usr/local/etc/cyrus.conf и пишем в нем
с настройкой конфигов покончено. приступим к настройке учетных записей
и mailbox'ов
сделаем команду /usr/local/cyrus/bin/mkimap
должно быть следующее сообщение
# /usr/local/cyrus/bin/mkimap
reading configure file...
i will configure directory /var/imap.
i saw partition /var/spool/imap.
done
creating /var/imap...
creating /usr/sieve...
creating /var/spool/imap...
done
insert into users(email,passwd,enabled,name,info)
values('cyrus','пароль',1,'cyrus','cyrus');
Для того что бы добавлять пользователей почты необходимо также
сконфигурить apache+php
причем php нужно конфигурить с socket'ами
web приложение для администрирование mailbox'ов mailadm.tar.gz
файл config.php в архиве
$MYSQLHOST = "localhost"; (настройки аналогичные для коннекта к мускулу выше)
$MYSQLUSER = "mail";
$MYSQLPASS = "mail";
$MYSQLDB = "mail";
$CYRUS_HOST="localhost";
$CYRUS_PORT="143";
$CYRUS_USERNAME="cyrus"; (пользователь которого вы добавили в базу)
$CYRUS_PASSWORD="cyrus"; (пароль)
$SESS_TIMEOUT=600;
$DEFQUOTE=10000;
$DEFNAME='yourdomain.com'; - доменное имя
CopyRight by Lubimez <admin at lubimez.tomsk.ru>
837 Прочтений • [Настройка Postfix и Cyrus-Imap с хранением базы пользователей в MySQL (postfix mail imap mysql sasl auth)] [08.05.2012] [Комментариев: 0]