Допустим, что у нас есть настроенный почтовый сервер. К примеру по вот этой инструкции 🙂 . То есть почта ходит и хранится в каталогах пользователей. Теперь для того что бы пользователю её забирать, нам понадобится какой нибудь MDA (Mail Delivery Agent). Я буду использовать Dovecot. Установка стандартная, из портов:
# cd /usr/ports/mail/dovecot && make install clean && rehash
Выбираем следующие опции при конфигурации. Тут главное не забыть MySQL:
[ ] BDB Berkeley DB support [ ] DOCS Build and/or install documentation [ ] GSSAPI GSSAPI Security API support [x] KQUEUE kqueue(2) support [ ] LDAP LDAP protocol support [x] MANAGESIEVE ManageSieve support [x] MYSQL MySQL database support [ ] PGSQL PostgreSQL database support [ ] SQLITE SQLite database support [x] SSL SSL protocol support [ ] VPOPMAIL VPopMail support
После установки приводим конфигурационный файл к следующему виду:
# cat /usr/local/etc/dovecot.conf base_dir = /var/run/dovecot/ protocols = imap pop3 imaps pop3s listen = 144.76.170.161 disable_plaintext_auth = no shutdown_clients = yes log_path = /var/log/dovecot.log log_timestamp = "%b %d %H:%M:%S " ssl_listen = mail.it-studio.pro ssl_cert_file = /etc/ssl/certs/mail.pem ssl_key_file = /etc/ssl/certs/mail.pem login_dir = /var/run/dovecot/login login_chroot = yes login_user = dovecot login_process_per_connection = yes login_processes_count = 3 login_max_processes_count = 128 login_greeting = Dovecot ready. login_log_format_elements = user=< %u> method=%m rip=%r lip=%l %c login_log_format = %$: %s mail_location = maildir:/var/exim/%Ld/%Ln mail_uid = mailnull mail_gid = mail mail_privileged_group = mail verbose_proctitle = yes first_valid_uid = 25 first_valid_gid = 5 protocol imap { login_executable = /usr/local/libexec/dovecot/imap-login mail_executable = /usr/local/libexec/dovecot/imap mail_plugins = quota imap_quota imap_client_workarounds = delay-newmail netscape-eoh tb-extra-mailbox-sep } protocol pop3 { login_executable = /usr/local/libexec/dovecot/pop3-login mail_executable = /usr/local/libexec/dovecot/pop3 pop3_uidl_format = %08Xu%08Xv mail_plugins = quota pop3_client_workarounds = outlook-no-nuls oe-ns-eoh } protocol lda { postmaster_address = postmaster@it-studio.pro hostname = mail.it-studio.pro deliver_log_format = msgid=%m %f: %$ sendmail_path = /usr/sbin/sendmail } auth_verbose = yes auth_debug = no auth_debug_passwords = no auth default { mechanisms = plain passdb sql { args = /usr/local/etc/dovecot-sql.conf } userdb sql { args = /usr/local/etc/dovecot-sql.conf } user = mailnull } dict { #quota = mysql:/usr/local/etc/dovecot-dict-quota.conf #expire = db:/var/db/dovecot/expire.db } plugin { quota = maildir }
И теперь связка Dovecot с MySQL
# cat /usr/local/etc/dovecot-sql.conf
driver = mysql
connect = host=localhost user=exim password=Password_here dbname=exim
default_pass_scheme = CRYPT
password_query = SELECT password FROM users WHERE login = '%n' AND domain = '%d' AND status = '1'
user_query = SELECT uid, gid FROM users WHERE login = '%n' AND domain = '%d'
Добавляем в автозагрузку и стартуем
# echo 'dovecot_enable="YES"' >> /etc/rc.conf # /usr/local/etc/rc.d/dovecot restart dovecot not running? (check /var/run/dovecot//master.pid). Starting dovecot. If you have trouble with authentication failures, enable auth_debug setting. See http://wiki.dovecot.org/WhyDoesItNotWork This message goes away after the first successful login.
Проверяем работает ли процесс
# ps -ax | grep dovecot 17871 - Ss 1:25.90 /usr/local/sbin/dovecot -c /usr/local/etc/dovecot.conf 17873 - S 0:26.21 dovecot-auth 17874 - I 0:00.21 dovecot-auth -w 55923 0 S+ 0:00.00 grep dovecot
А так же можно проверить всю почтовую систему
# sockstat | grep -E "25|465|143|993" dovecot imap-login 52477 4 tcp4 144.76.170.161:143 *:* dovecot imap-login 52477 5 tcp4 127.0.0.1:993 *:* mailnull imap 51255 0 stream -> ?? mailnull imap 51255 1 stream -> ?? dovecot imap-login 51254 3 stream -> ?? dovecot imap-login 51254 4 tcp4 144.76.170.161:143 *:* dovecot imap-login 51254 5 tcp4 127.0.0.1:993 *:* dovecot imap-login 51254 11 stream -> /var/run/dovecot/login/default dovecot imap-login 51163 10 tcp4 144.76.170.161:143 195.28.31.196:59147 dovecot imap-login 48946 10 tcp4 144.76.170.161:143 195.28.31.196:59021 dovecot imap-login 45433 4 tcp4 144.76.170.161:143 *:* dovecot imap-login 45433 5 tcp4 127.0.0.1:993 *:* mailnull exim 18870 3 tcp4 127.0.0.1:25 *:* mailnull exim 18870 4 tcp4 127.0.0.1:465 *:* mailnull exim 18870 5 tcp4 144.76.170.161:25 *:* mailnull exim 18870 6 tcp4 144.76.170.161:465 *:* root dovecot 17871 6 tcp4 144.76.170.161:143 *:* root dovecot 17871 7 tcp4 127.0.0.1:993 *:*
Теперь можно настраивать какой нибудь ThunderBird или web-клиент Roundcube и забирать почту из ящичков.