forum.bitel.ru http://forum.bitel.ru/ |
|
Postfix+Mysql+Virtual domains http://forum.bitel.ru/viewtopic.php?f=11&t=2075 |
Страница 1 из 1 |
Автор: | Heggi [ 26 мар 2009, 02:20 ] |
Заголовок сообщения: | Postfix+Mysql+Virtual domains |
У кого-нить получилось сделать по Вики? 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 [ 28 мар 2009, 20:33 ] |
Заголовок сообщения: | |
Так.. ясно... Либо народ не хочет заморачиваться, либо ни к чему так и не пришел... Через пару дней выложу рецепт по применению Postfix+bgBilling+MySQL+Virtual Domains |
Автор: | Heggi [ 29 мар 2009, 09:40 ] |
Заголовок сообщения: | |
Собственно рецепт. Я все настраивал на Gentoo. Предположим, что имеем 2 домена domain1.ru и domain2.ru /etc/postfix/main.cf Цитата: 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 Цитата: 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 Цитата: maildrop unix - n n - - pipe flags=DRhu user=mail argv=/etc/postfix/maildropplus ${recipient} ${user} Это взято из вики и немного подправлено: /etc/postfix/maildropplus Цитата: #!/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 Цитата: authmodulelist="authmysql" authmodulelistorig="authmysql" /etc/courier/authlib/authmysqlrc Цитата: 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 и добавить их в автозагрузку. |
Автор: | Администратор [ 01 апр 2009, 15:33 ] |
Заголовок сообщения: | |
Занес в WiKi ссылку. http://wiki.bgbilling.ru/index.php/Post ... al_domains Может кто оформит потом ) хоть не потеряется. В 4.6 будет возможность ведения учета аккаунтов просто в сторонней SQL базе, без LDAP. |
Автор: | snark [ 01 апр 2009, 16:00 ] |
Заголовок сообщения: | |
Б-г знает когда запустил связку cyrus как POP3/IMAP + sendmail (на фре он штатный, а хотелось обойтись без доп. софта) как SMTP + MySQL как хранилище логинов/паролей и совершенно не пойму что сложно в том чтобы прикрутить номер договора как имя ящика, а пароль статистики как пароль на ящик, ну или иные данные брать как логин/пароль из биллинга ... |
Автор: | skyb [ 03 сен 2009, 07:05 ] |
Заголовок сообщения: | |
Не хочет у меня по этим настройкам работать вот обсуждение где я пытался его наладить(постфикс) http://linuxforum.ru/index.php?showtopi ... ntry930869 что мне не кто не поможет??? |
Автор: | skyb [ 27 май 2010, 09:00 ] |
Заголовок сообщения: | Re: Postfix+Mysql+Virtual domains |
А может ктонибудь выложить рабочие конфиги постфикса?? а то бъюсь бъюсь и не получается ![]() |
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |