Migrate courier to dovecot
От както имам собствен мейл сървър , винаги съм използвал courier за pop3 и imap. В началото бях на qmail,после мигрирах на postfix.
С годините технологиите се променят, и нуждите на клиента също. Установих че, започнам да имам нужда от нещо по-добро.
- Всичко тръгна от това че , след като се логна в уебмейл-а (roundcubemail) чакам около 20 секунди да ми се заредят писмата. Общо в пощата си имам около 6000-7000 мейла , а в настройките на уеб мейла е направено да показва първите 50. Пробвах с разни опции за оптимизиране на roundcube-a но ефекта беше минимален.
- Второто което исках да направя е : спам-а да не бъде пращан в карантина и да не пристига до получателя си изобщо, а да идва в папка Спам.
Отне ми няколко дни да разбера че решението на тези 2 проблема е в мигрирането от courier към dovecot!
Самата миграция е елементарна –
apt-get install dovecot-common dovecot-imapd dovecot-pop3d dovecot-dev
Така се премахва стария courier и идва новия dovecot.
Следват настройките. Благодарение на Коко открих този линк в който е описано стъпка по стъпка как се конфигурира dovecot-a. Няма да изпадам в подробности , просто ще напиша главното как се прави – а именно проблема с лоад-а и спам-а в папките.
Първо за оптимизацията, след като успях да го настроя установих че при логване , писмата излизат за около 2-3 секунди (а не 20-30 като преди) . Това е с фабричните настройки – просто невероятно!
Сега идва и момента за спам-а. Инсталирал съм си 2 пакета : sieve-connect и pysieved , но до колкото разбрах в новите версии на dovecot (1.2 и нагоре) си идва пачнат със sieve. Общо взето sieve е далаверката която е необходима за нашата работа със спам-а 😉
Започваме със следното:
mkdir /var/sieve cd /var/sieve wget http://www200.pair.com/mecham/spam/global.sieve.txt mv global.sieve.txt global.sieve chown -R vmail:vmail /var/sieve chmod -R 0700 /var/sieve touch /var/log/dovecot-deliver.log chown vmail:vmail /var/log/dovecot-deliver.log cd /etc/logrotate.d/ wget http://www200.pair.com/mecham/spam/deliver.logrotate.txt mv deliver.logrotate.txt dovecot-deliver
След това добавяме следното в /etc/postfix/master.cf
dovecot unix - n n - - pipe flags=DRhu user=vmail:vmail argv=/usr/lib/dovecot/deliver -d ${recipient} -e
и рестартираме postfix-a
Следва и най-важното , да кажем на dovecot-a да ползва global.sieve
Отваряме /etc/dovecot/dovecot.conf и добавяме следното:
protocol lda { postmaster_address = postmaster@example.com mail_plugins = quota sieve quota_full_tempfail = yes rejection_reason = Your message to was automatically rejected:%n%r%n%nThe Subject of your message was: %s auth_socket_path = /var/run/dovecot/auth-master sieve_global_path = /var/sieve/global.sieve log_path = /var/log/dovecot-deliver.log info_log_path = /var/log/dovecot-deliver.log }
Хубаво е да се добавят и следните редове :
autocreate = Trash autocreate2 = Spam autocreate3 = Archive autocreate4 = Drafts autocreate5 = Sent autosubscribe = Trash autosubscribe2 = Spam autosubscribe3 = Archive autosubscribe4 = Drafts autosubscribe5 = Sent
в plugin { секцията
рестартираме dovecot-a и тестваме 🙂
Резултата може да се види в лог файла : /var/log/dovecot-deliver.log , като при успешна инсталация виждаме следното:
2013-03-29 12:59:06 deliver(niki@example.net): Info: sieve: msgid=<20130329115858.A515210816E01620D571.A38F0E@MARTIN-PC>: stored mail into mailbox ‘Spam’
Друга хубава благинка е плугина : managesieve който позволява потребителя сам да конфигурира филтрите си, да добавя vacation съобщение , да филтрира дадени думи и тн. За да работи той е необходимо добавянето му в protocols и следните редове в dovecot.conf
protocol managesieve { # Specify an alternative address:port the daemon must listen on # (default: *:2000) listen = localhost:2000 managesieve_logout_format = bytes ( in=%i : out=%o ) }
Следва и конфигурирането му в roundcubemail. Резултат от успешната инсталация можем да видим също и в dovecot-deliver.log-a
2013-03-29 12:35:03 deliver(root-test@example.bg): Info: sieve: msgid=<20130329103456.967DBD3E@example.bg>: sent vacation response to
Общо взето това е.. вече имам работещ dovecot сървър с много нововъведения!