Postfix + MySQL + Courier-IMAP для ASPLinuxАвтор: Константин Климчев |
||
ПредисловиеПродолжение postfix-цикла. Если Вам нужно что-то посерьезнее qpoppep'а или Вам просто необходима возможность работы по imap (хранить почтовые ящики пользователей на сервере - кстати, очень удобно). Сразу скажу - большенство материала перекочевало из предыдущих статей цикла. Повторяюсь: если Вы заметите какую-либо неточность или более красивое решение - пишите, я это отражу (разумеется герои не будут забыты в руководстве). В конце есть ссылки на собранные (пересобранные) файлы, которые я использовал при написании этой статьи ИнсталляцияMySQL:тут ничего не обычного нет - просто ставите и все. Единственное, что отмечу - нужны пакеты mysql, mysql-server, mysql-devel, zlib-devel Postfix:Вот тут необходимо пересобрать пакет (Это касается только ASP7.3. Для ASP9 postfix из updates уже собран с поддержкой mysql). Необходимо "включить" поддержку MySQL. Но тут все очень просто - необходимо взять srpm'ку из дистрибутива, развернуть ее в то место, где у Вас осуществляется сборка пакетов и в spec'е изменить одно значение: са также добавить один патчик с http://www.oav.net/vda/. Он нужен для квотирования почтовых ящиков пользователей (одному дадите 1 Мб, другому 10). Вся проблема в том, что postfix может квотировать только mailbox-ящики, а courier'у требуется maildir-ящик. Указанный патч как раз и устраняет проблему. Фактически, при пересборке postfix'а необходимо положить указанный патч в то место, где у Вас расположены исходники, патчи и т.п. которые участвуют при сборке rpm-пакета (каталог SOURCE), а в спеке добавить инструкцию о применении этого патча. Здесь я приведу diff измененного spec'а:
После этих подготовительных операций осуществите пересборку (rpm -ba postfix.spec), а после инсталлируйте (если переинсталлировать, то rpm -Uvh --force имя_пакета.rpm) пакет. Courier-imap:Идем на сайт: http://www.inter7.com/courierimap.html программы и берем исходники courier-imap. На момент написания была версия 1.7.3. (Для ASP9 внизу ссылка на файлы версии 2.2.1) По умолчанию собирается несколько пакетов: сам courier-imap и модули авторизации через mysql (то что нам и нужно), postgresql (для поклонников - есть патчи для postfix'а) и ldap (в postfix'е нативная поддержка). Так как я все нужные пакеты собираю под vmware (чего основную систему захламлять), поэтому я ничего в спеке не изменял, а инсталлировал недостающие для сборки пакеты (лдапные и постгресные) и на выходе получил то, что нужно. После инсталлировал courier-imap и courier-imap-mysql. Следует отметить, что если Вы ничего не меняли, пакет ставится в /usr/lib/courier-imap Следующий шаг - конфигурирование. КонфигурированиеMySQL:все конфигурирование заключается в создании базы виртуальных пользователей и пользователя, от которого будет осуществляться доступ к указанной базе.
Обратите внимание на значение поля maildir. Оно заканчивается на "/". Это необходимо для того, чтобы postfix "работал" с почтовыми ящиками в формате maildir Postfix:Конфигурирование postfix'а заключается в редактировании конфигурационных файлов. Сразу скажу - здесь я не буду описывать весь процесс конфигурирования postfix'а (смотрите документацию к postfix'у - там есть много чего интересного), а только тем моменты, которые затрагивают рассматриваемый вопрос. файл /etc/postfix/master.cf строку: файл /etc/postfix/main.cf
строка local_recipient_maps = ... необходима для того, чтобы почту могли получать
и локальные пользователи (не нужно было бы их прописывать в базе), которым
направляются результаты работы сервисов системы (запускаемые по cron, ошибки и
т.п.), а эту почту локального пользователя (например, root) можно потом перенаправить
на виртуального в файле /etc/postfix/aliases.
файл /etc/postfix/mysql-mydestination.cf
файл /etc/postfix/mysql-virtual-maps.cf
файл /etc/postfix/mysql-virtual.cf
файл /etc/postfix/mysql-virtual-uid.cf
файл /etc/postfix/mysql-virtual-gid.cf
файл /etc/postfix/mysql-transport.cf
файл /etc/postfix/mysql-mailboxsize.cf
Не забываем создать каталог /var/spool/mail/virtual1.domain
с правами:
Courier-imap:тут все просто. нужно подправить конфиг, да настроить каким службам автоматически запускаться (pop3,pop3-ssl, imap, imap-ssl) - см. соответствующие конфиги в /usr/lib/courier-imap/etc/ Содержимое файла файла /usr/lib/courier-imap/etc/authmysqlrc:
На этом этап конфигурирования закончен. Следующее - тестирование. ТестированиеПерво-наперво нужно проверить возможность получения почты виртуальными пользователями. Пользователь test@virtual1.domain у нас создан. Нужно попытаться послать ему какое либо письмо. Самый простой способ (это нужно делать с машины, на которой и происходит процесс установки):
далее смотрим, что появилось в файле /var/log/maillog. Если возникли какие-либо
ошибки - описывается довольно подробно где смотреть. Обычно это опечатки в
конфигурационных файлах. Если не совсем понятно - попробуйте включить режим
логирования в mysql (в этом логе будут писаться обращения к серверу и его
ответы).
Если все работает, то в maillog'е будет запись типа: May 20 10:05:41 localhost postfix/virtual[9779] DF0B1C79D: to=<test@virtual1.domain>, \ relay=virtual, delay=1, status=sent(maildir) После этого посмотрите содержитое каталога /var/spool/mail/virtual1.domain/ Там должен будет появиться каталог test. После того, как все получилось, попробуйте аналогичное для локальных пользователей (например, postmaster - смотрите куда он алиасится в файле /etc/postfix/aliases). С получением почты разобрались. Займемся доступом по pop3 (imap оставим на самостоятельное задание). Во-первых, запустите courier-imap:
у меня запускаются только imap и pop3. Если Вы ничего не изменяли в конфигах,
то еще должно будет запуститься imap-ssl и pop3-ssl.
Во-вторых: Самый простой способ это с машины, на которой происходит процесс установки выполняем:
если что-то не то - смотрите /var/log/maillog и лог запросов к mysql. Если попали в засаду - пишите на форум. Попробуем разобраться (но перед этим еще раз внимательно проверьте - ничего-ли Вы не забыли сделать и нет ли ошибок в конфигурационных файлах). В завершение напоминаю: Создаете виртуальный почтовый домен - не забудьте создать пользователей этого домена: "root@", "postmaster@" и "abuse@" Упоминаемые в статье файлы:
PS. Спасибо Sergey V. Beduev за ряд замечаний и предложений по статье
| ||
| Вернуться в начало: | ||
|
|