FreeBSD: строим почтовую систему Postfix + Dovecot + MySQL + Postfix Admin, часть 3 — установка и настройка Dovecot.

Автор: | 08/04/2012
 

Это третья часть.

Первая часть тут>>>.

Вторая часть тут>>>.

Сам MDA (Mail Delivery Agent) Dovecot установился во время установки Postfix во второй части.

Отредактируем файл конфигурации Dovecot/usr/local/etc/dovecot.conf:

# cat  /usr/local/etc/dovecot.conf | grep -v '^#' | sed '/^$/d' | more

#Поддерживаемые протоколы:
protocols = imap pop3 lmtp

#Разрешаем авторизацию без шифрования
disable_plaintext_auth = no

#Расположение почтовых ящиков, %d - домен, %u - пользователь
mail_location = maildir:/usr/mail/%d/%u/

#Прочие параметры, описаны в самом файле
mail_privileged_group = mail
dotlock_use_excl = yes
verbose_proctitle = yes
first_valid_gid = 65534
maildir_copy_with_hardlinks = yes
login_greeting = Dovecot ready.
dict {
  #quota = mysql:/usr/local/etc/dovecot/dovecot-dict-sql.conf.ext
  #expire = sqlite:/usr/local/etc/dovecot/dovecot-dict-sql.conf.ext
}

#Нужный параметр, пока настраиваете сервер, потом можно отключить. Выводит много информации в лог /var/log/maillog в т.ч. запросы к MySQL
auth_debug = yes

#Не использовать SSL
ssl = no

#Описываем протоколы
protocol imap {
  imap_client_workarounds = delay-newmail outlook-idle netscape-eoh tb-extra-mailbox-sep
}
protocol pop3 {
  pop3_uidl_format = %08Xu%08Xv
  pop3_client_workarounds = outlook-no-nuls oe-ns-eoh
}
protocol lda {
  postmaster_address = admin@webmaster.co.ua
  sendmail_path = /usr/sbin/sendmail
}

#Описываем аутентификацию
auth_username_format = %Lu

auth default {

  mechanisms = plain login

  userdb {
    args = /usr/local/etc/dovecot-sql.conf
    driver = sql
  }

  passdb {
    driver = sql
    args = /usr/local/etc/dovecot-sql.conf
  }

  user = nobody

  socket listen {
    master {
      path = /var/run/dovecot/auth-master
      mode = 0666
    }

    client {
      path = /var/spool/postfix/private/auth
      mode = 0660
      user = postfix
      group = postfix
    }
  }
}

dict {
}

plugin {
}

Редактируем файл конфигурации работы с MySQL/usr/local/etc/dovecot-sql.conf. ВАЖНО: параметр query может меняться в зависимости от версии сервера, в описываемом примере используется dovecot-1.2.17:

# cat /usr/local/etc/dovecot-sql.conf | grep -v '^#' | sed '/^$/d' | more
driver = mysql
connect = host=127.0.0.1 dbname=postfix user=postfix password=mypassword
default_pass_scheme = MD5-CRYPT
password_query = SELECT password FROM mailbox WHERE username = '%u'
user_query = SELECT maildir, 65534 AS uid, 65534 AS gid FROM mailbox WHERE username = '%u'
user_query = SELECT CONCAT('/usr/mail/',LCASE(`domain`),'/',LCASE(`maildir`)), 65534 AS uid, 65534 AS gid FROM mailbox WHERE username = '%u'

Перезапускаем Dovecot:

# service dovecot restart
Stopping dovecot.
Starting dovecot.

Добавляем Dovecot в запуск при загрузке системы в файл /etc/rc.conf:

dovecot_enable="YES"

На этом настройка почтового сервера завершена.
При проблемах — не забываем в первую очередь смотреть лог /var/log/maillog.

Из комментариев:

Еще допишите что после настройки postfix нужно перестроить базу данных для файла почтовых алиасов /etc/aliases и /etc/aliases.db командой newaliases иначе почта может не ходить

Полезные ссылки по теме:

http://skeletor.org.ua/?p=159
http://www.lissyara.su/articles/freebsd/mail/postfix+dovecot+spamassasin+clamav+ldap+mysql/
http://www.hilik.org.ua/postfix-dovecot-postfixadmin/
http://rtfm.co.ua/telnet-bystraya-proverka-raboty-pochty-cherez-konsol/
http://wiki1.dovecot.org/#Dovecot_configuration
http://www.postfix.org/postconf.5.html
http://freesource.info/wiki/Dokumentacija/Postfix?v=1d3p&
http://wiki2.dovecot.org/ru/
http://www.freebsd.org/doc/ru_RU.KOI8-R/books/handbook/mail.html