[solved] Postfix+Dovecot+MySQL
Lilu 23 января, 2012 - 15:53
Доброго времени.
Делаю по этому - http://en.gentoo-wiki.com/wiki/Dovecot/Install
user_query = \ SELECT home, uid, gid \ FROM users WHERE username = '%n' AND domain = '%d'
1. Не понимаю вот что - home, uid, gid как мне их выставлять если я хочу виртуальных пользователей?
2. Не понимаю где будут храниться письма.
Вопросы возможно простые, но не могу понять. Прочитал статью по установке и все что есть в dovecot-sql.conf.
Спасибо за подсказки.
»
- Для комментирования войдите или зарегистрируйтесь
А Вы осознанно выбрали mysql
А Вы осознанно выбрали mysql в качестве хранилища учетных записей?
Могу помочь с настройкой postfix+dovecot+spamassassin+openldap с вебмордой phpldapadmin, что очень удобно при управлении многодоменным почтовым сервером.
Секта Черных Пингвинов
http://blackpenguins.ru
NWhisper написал(а): А Вы
Я наверное не полно описал задачу. Исправляюсь.
Есть WEB приложение, в котором основные данные о пользователе (логин/пароль) хранятся в MySQL. Нужна интеграция почтового сервиса - поэтому такая связка. Ну и еще roundcube как WEB интерфейс к почте.
postfix кажется заработал.
dovecot немного запутал меня)
В таком случае:Цитата:
В таком случае:
home - это путь к письмам. uid и gid это id виртуального юзера для почты (если домен виртуальный, иначе, зачем sql). Созадайте такового.
Если эти uid и gid одинаковы для всех, то их можно указать в /etc/dovecot/conf.d/10-auth.conf и не дергать из базы
Я бы посмотрел все-таки в сторону postfixadmin и заточил ваше вебприложение, чтоб оно в его базу ходило
izbushka написал(а): В таком
Допустим я в настройках указал так
home - из mysql получится поддиректорией домашней директории виртуального пользователя?
PS: Я просто хочу разобраться и понять в какой именно директории на файловой системе будет почта. Хочу знать где оно будет храниться.
У меня так:SELECT
У меня так:
в maildir - "имя домена/имя пользователя"
Т.е. вся почта в
/var/spool/vmail/имя домена/имя пользователя
ps Стоит заметить, что и постфикс должен об этом знать, если только вы не используете dovecot в качестве lda.
base_directory в базе ? хм,
base_directory в базе ? хм, оригинально. особенно когда туда пишет пых-пых, дырявый по ДНК.
Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)
slepnoga
Есть способ не хранить base_directory в базе? Поделитесь плиз.
В базе хранится только часть
В базе хранится только часть пути (домен/имя). Т.е. можете проверять, средствами того же sql, чтоб там небыло попыток подняться на уровень вверх ("../") и все.
типа такого: SELECT CONCAT('/var/spool/vmail/', replace(`maildir`,'../','') AS `home`...
izbushka написал(а): В базе
Запустилось вроде.
Только подскажите еще плиз как правильно настроить postfix? Как правильно указать ему на сообщения?
Examples: # user_query =
Вопросы ? Замечания ?
Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)
Lilu написал(а):1. Не
1. Управляйте аккаунтами через postfixadmin, например. Зачем что-то изобретать, если уже все готово.
2. На диске. Не в mysql, если вы об этом.
ps. вот тоже ничего статья
Делаю по этому ману -
Делаю по этому ману - link
Остановился на "Генерация SSL/TLS сертификатов"
Выполняю все команды и не пойму где я должен найти вот это?
А вот это создается нормально
(*)
Там написано "Создаем с помощью стандартных средств OpenSSL, в команды вдаваться не будем." А я "вдамся" в пояснения.
"Создаем центр сертификации" - получится ca.domain.ru.cert
"Создаем запрос на сертификацию" - получится *.req и приватный ключ (*.key)
"Ну и наконец подписываем" - ca.domain.ru.cert подпишет *.req и на выходе даст *.cert к тому *.key
Так что все три файла у вас получатся.
mastepaner написал(а): Там
Чувствую себя глупым =(
После выполнения команд получилось вот такое
Где мне их найти?
(*)
cakey.pem и cacert.pem - это ваши ca.domain.ru.key и ca.domain.ru.cert
newkey.pem + newcert.pem + ненужный более newreq.pem = mail.domain.ru.key + mail.domain.ru.cert + ненужный более *.req
Мне postfix сказал
Мне postfix сказал следующее.
Где найти логи? Где посмотреть подробнее что случилось? Это возможно вообще?
Хм../var/log/mail.*/var/lo
Хм..
ну и
Postfix и Dovecot
Postfix и Dovecot запустились. Но ничего не работает. =( Как понять что не правильно сделал? в /var/log/ нет файлов логов для этих программ. глухо все.
Они пишут логи через syslog.
Они пишут логи через syslog. Он запущен?
izbushka написал(а): Они
А это плохо?
Lilu написал(а): А это
А сами-то вы как думаете? Хорошего мало
izbushka написал(а): Lilu
Сделал вот так
применил новый конфиг. получил это
Собственно ничего не понял.
УРА! Письмо
УРА! Письмо доставилось!
Теперь надо проверить что pop/imap работают.
<name@hotmail.com>: Recipient
Почему так происходит при отправке письма?
На этот email посылаю письмо
Как простым способом
Как простым способом проверить работает ли авторизация в Dovecot (imap or pop)? Есть способ сделать это прям из консоли сервера? Так чтобы не настраивать пока больше ничего а просто проверить.
Если без шифрования, то
Если без шифрования, то да:
izbushka написал(а): Если без
Класс POP and IMAP так проверил - работают.
Письма на почтовый ящик доставляются. (из мне.) тоже проверил.
Теперь как проверить отправку? Если можно то тоже чтонить из консоли, чтобы попробовать письмо отправить из консоли через настраиваемый smtp.
Если без авторизации
Если без авторизации то
С авторизацией сложно.
izbushka написал(а):Если без
Да я без авторизации тестирую.
вот что получилось
Что-то я не понял... это он сказал, что такого домена нет в "virtual mailbox table"... Я поломался.. =( Это же место назначение почему оно говорит, что этот домен должен быть у меня в таблице?
Я почти в панике.
Lilu написал(а): izbushka
Проверил отправку пользователю из этого же домена - доходит...
Может проблема тут гдето?
в
в
smtpd_recipient_restrictions
, как и в других *_restrictions правила пишутся через запятую, afaikizbushka написал(а): в
собственно делаю вот по этому руководству...
550 ответил постфикс
550 ответил постфикс
и ответил простым английским языком - пользователь\получатель не найден в таблице (виртуальных) пользователей
см. конфиг постфикса и поймите что авторизация (и как следствие - список пользователей) должна выполнятся в одной "базе даных" (схеме)
что-то добрый я сегодня ....
leryc написал(а): 550 ответил
Простым английским языком тут написано следующее
550 5.1.1 <user@domainto.com>: адрес user@domainto.com отклонен: Пользователь не найден в таблице виртуальных почтовых ящиков
И это происходит на этапе ввода адреса назначения. Я предположил, что это оно пытается искать пользователя для адреса назначения. Это и поставило меня в тупик.
У меня одна база данных MySQL и postfix и dovecot обращаются к одним и тем же записям в ней.
Или вы про каких пользователей? Про место назначения? Тогда как быть если я хочу отправить письмо на ***@hotmail.com ?
domainto.com вероятно ваш и
domainto.com вероятно ваш и вероятно локальный домен - постфикс попытался через запрос к mysql найти пользоавтеля "user" в таблице "юзеры домена"
смотрите логи постфикса и мускула
(я приверженец exima и вникать в синтаксис постфикса не хочу)
что-то добрый я сегодня ....
leryc
Блин... Нет. Не так.
На локальные домены почта доставляется. Тут все нормально. И с внешних ящиков на "настраиваемый" домен почта тоже доходит.
Как быть с отправкой почты во внешний мир? Допустим я захожу мне прислали письмо на мой ящик и я хочу отправить ответ допустим с моего домена на gmail.com. Как тут быть? в Своей почтовой программе как smtp сервер я указываю свой smtp и я так понимаю он должен переслать письмо на gmail... или на какойнить другой почтовый сервер. Именно вот это не работает...
tail -f
tail -f /var/log/dovecot/dovecot.log
что-то добрый я сегодня ....
leryc написал(а): tail -f
А вот это интересно такого лога нет. И не пойму как его включить.. =(
в /var/log/mail.log
в /var/log/mail.log смотрите
Чтоб сделать в dovecot.log - курить syslog.conf или dovecot.conf
nano
nano /etc/dovecot/conf.d/10-logging.conf
что-то добрый я сегодня ....
leryc написал(а): nano
Спасибо! Полезно! =)