Postfix+Mysql+Virtual domains

Управление E-Mail аккаунтами договоров.

Postfix+Mysql+Virtual domains

Сообщение Heggi » 26 мар 2009, 02:20

У кого-нить получилось сделать по Вики? http://wiki.bgbilling.ru/index.php/Post ... /BGBilling

Мало того, что в статье больше половины упущено (и пришлось много погуглить, чтобы сервер хотя бы запустился), так эта собака еще и не работает... Почту принимать не хочет (ссылается на отсутствие юзеров, хотя ящики заведены)

Лог запросов в MySQL:
14 Connect postfix@localhost on bgbilling
14 Query SELECT account FROM email_account_3 WHERE account='info' AND status = '0'

Если этот запрос сделать вручную - то результат - 1 строка, однако постфикс ругается:

Mar 25 17:04:50 server1 postfix/local[5070]: E45BA14E67C: to=<info@ххх.net>, relay=local, delay=0.03, delays=0.01/0/0/0.02, dsn=5.1.1, status=bounced (unknown user: "info")

Кто-нить поднял схему, если имеется несколько доменных имен?
Heggi
 
Сообщения: 85
Зарегистрирован: 19 янв 2009, 15:15

Сообщение Heggi » 28 мар 2009, 20:33

Так.. ясно... Либо народ не хочет заморачиваться, либо ни к чему так и не пришел...

Через пару дней выложу рецепт по применению Postfix+bgBilling+MySQL+Virtual Domains
Heggi
 
Сообщения: 85
Зарегистрирован: 19 янв 2009, 15:15

Сообщение Heggi » 29 мар 2009, 09:40

Собственно рецепт. Я все настраивал на Gentoo.
Предположим, что имеем 2 домена domain1.ru и domain2.ru

/etc/postfix/main.cf
$this->bbcode_second_pass_quote('', '
')queue_directory = /var/spool/postfix
command_directory = /usr/sbin
daemon_directory = /usr/lib/postfix
mail_owner = postfix
default_privs = nobody
myhostname = mail.domain1.ru
inet_interfaces = all
mydestination =
unknow_local_recipients_reject_code = 550
mynetworks_style = subnet
mynetworks = 127.0.0.0/8, 10.0.0.0/24
mail_spool_directory = /var/spool/mail
sendmail_path = /usr/sbin/sendmail
message_size_limit = 10240000
bounce_size_limit = 65536
header_size_limit = 32768
allow_untrusted_routing = no
smtpd_recipient_restrictions = permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination

relay_domains =
relay_host =

virtual_alias_maps = hash:/etc/postfix/virtual
virtual_transport = maildrop
virtual_mailbox_domains = domain1.ru domain2.ru
#virtual_mailbox_base = /var/mail/vhosts
virtual_mailbox_maps = mysql:/etc/postfix/mysqlvirtual.cf
local_recipient_maps = $virtual_mailbox_maps
virtual_uid_maps = static:207
virtual_gid_maps = static:207
virtual_minimum_uid = 207
maildrop_destination_recipient_limit = 1

disable_vrfy_command = yes


Теперь самое интересное:
/etc/postfix/mysqlvirtual.cf
$this->bbcode_second_pass_quote('', '
')hosts = 127.0.0.1
dbname = bgbilling
user = логин
password = пароль
query = SELECT CONCAT(account,IF(did=1,'@domain1.ru',IF(did=2,'@domain2.ru','@unknown_domain'))) FROM email_account_3 WHERE account='%u' AND status = '0'

Postfix, делая запрос в базу, передает только username, а ожидает username@domain. Т.к. в таблице в явном виде не хранится такое значение, надо его создать искуственно, а т.к. доменов несколько, используем поле did, в котором число указывает на номер домена (тот, что вы указывали в конфигурации модуля)

/etc/postfix/master.cf
$this->bbcode_second_pass_quote('', '
')maildrop unix - n n - - pipe
flags=DRhu user=mail argv=/etc/postfix/maildropplus ${recipient} ${user}


Это взято из вики и немного подправлено:
/etc/postfix/maildropplus
$this->bbcode_second_pass_quote('', '
')#!/bin/bash
if ! cd /var/mail/$1; then
/usr/bin/maildirmake /var/mail/$1;
chown -R mail:mail /var/mail/$1;
chmod -R 700 /var/mail/$1;
/usr/bin/maildrop -w 90 -d $2;
else
/usr/bin/maildrop -w 90 -d $2;
fi
exit $?


/etc/courier/authlib/authdaemonrc
$this->bbcode_second_pass_quote('', '
')authmodulelist="authmysql"
authmodulelistorig="authmysql"


/etc/courier/authlib/authmysqlrc
$this->bbcode_second_pass_quote('', '
')MYSQL_SERVER 127.0.0.1
MYSQL_USERNAME логин
MYSQL_PASSWORD пароль
MYSQL_SOCKET /var/run/mysqld/mysqld.sock
MYSQL_PORT 3306
MYSQL_OPT 0
MYSQL_DATABASE bgbilling
MYSQL_USER_TABLE email_account_3
MYSQL_CLEAR_PWFIELD email_account_3.password
#uid и gid взяты для юзера и группы mail
MYSQL_UID_FIELD 8
MYSQL_GID_FIELD 12
MYSQL_LOGIN_FIELD email_account_3.account
MYSQL_HOME_FIELD '/var/mail/'
MYSQL_MAILDIR_FIELD CONCAT("/var/mail/",email_account_3.account,IF(did=1,'@domain1.ru',IF(did=2,'@domain2.ru','@unknown_domain')),"/")
MYSQL_QUOTA_FIELD CONCAT(email_account_3.quota,"000S")
MYSQL_WHERE_CLAUSE email_account_3.status='0'


Вот и все. Не забыть только запустить postfix и courier-authdaemon и добавить их в автозагрузку.
Heggi
 
Сообщения: 85
Зарегистрирован: 19 янв 2009, 15:15
Вернуться к началу

Сообщение Администратор » 01 апр 2009, 15:33

Занес в WiKi ссылку. http://wiki.bgbilling.ru/index.php/Post ... al_domains
Может кто оформит потом ) хоть не потеряется.
В 4.6 будет возможность ведения учета аккаунтов просто в сторонней SQL базе, без LDAP.
Администратор
Разработчик
 
Сообщения: 5644
Зарегистрирован: 27 ноя 2006, 20:36

Сообщение snark » 01 апр 2009, 16:00

Б-г знает когда запустил связку cyrus как POP3/IMAP + sendmail (на фре он штатный, а хотелось обойтись без доп. софта) как SMTP + MySQL как хранилище логинов/паролей и совершенно не пойму что сложно в том чтобы прикрутить номер договора как имя ящика, а пароль статистики как пароль на ящик, ну или иные данные брать как логин/пароль из биллинга ...
snark
Клиент
 
Сообщения: 3944
Зарегистрирован: 12 фев 2008, 18:10

Сообщение skyb » 03 сен 2009, 07:05

Не хочет у меня по этим настройкам работать
вот обсуждение где я пытался его наладить(постфикс)
http://linuxforum.ru/index.php?showtopi ... ntry930869


что мне не кто не поможет???
Аватара пользователя
skyb
Клиент
 
Сообщения: 7166
Зарегистрирован: 03 авг 2009, 18:42
Откуда: Благовещенск

Re: Postfix+Mysql+Virtual domains

Сообщение skyb » 27 май 2010, 09:00

А может ктонибудь выложить рабочие конфиги постфикса??
а то бъюсь бъюсь и не получается :(
$this->bbcode_second_pass_code('', '
Клиент: вер. 6.2.714 / 25.05.2015 17:27:15
os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
Сервер: вер. 6.2.881 / 22.05.2015 17:56:55
os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
')
Помощь по администрированию bgbilling в jabber конференции или Группа в telegram
Стиль программирования - пьяный мастерстер
Разработка мобильных приложений
Аватара пользователя
skyb
Клиент
 
Сообщения: 7166
Зарегистрирован: 03 авг 2009, 18:42
Откуда: Благовещенск


Вернуться в Модуль E-Mail

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0