Все три предыдущие статьи мы готовились к большому и важному событию в жизни нашего почтового сервера – его запуску. Теперь, когда все сопутствующее мы настроили, самое время его запустить и проверить. Итак:
# chown -R exim:mail /var/log/exim # chown -R exim:mail /var/mail # chown -R exim:mail /var/spool # rm /usr/sbin/sendmail # ln -s /usr/local/sbin/exim /usr/sbin/sendmail # rm /usr/bin/mailq # ln -s /usr/local/sbin/exim /usr/bin/mailq
Проверим правильность нашей конфигурации exim, выполнив exim -bV. Должно вывести что-то вроде такого:
Exim version 4.71 #0 (FreeBSD 7.2) built 20-Jan-2010 17:40:29 Copyright (c) University of Cambridge, 1995 - 2007 Probably Berkeley DB version 1.8x (native mode) Support for: crypteq iconv() use_setclassresources PAM Perl Expand_dlfunc OpenSSL Content_Scanning DKIM Old_Demime Experimental_SPF Lookups: lsearch wildlsearch nwildlsearch iplsearch cdb dbm dbmnz dnsdb dsearch mysql nis nis0 passwd Authenticators: cram_md5 dovecot plaintext spa Routers: accept dnslookup ipliteral manualroute queryprogram redirect Transports: appendfile/maildir/mailstore/mbx autoreply lmtp pipe smtp Fixed never_users: 0 Size of off_t: 8 OpenSSL compile-time version: OpenSSL 0.9.8e 23 Feb 2007 OpenSSL runtime version: OpenSSL 0.9.8e 23 Feb 2007 Configuration file is /usr/local/etc/exim/configure
Если ошибок нет, идем дальше. К этому времени мы уже создали локальный домен и как минимум постмастера в нем, проверим распознавание локальной почты к нему (тут меняем jared@jared.kiev.ua на созданного пользователя):
# exim -bt jared@jared.kiev.ua jared@jared.kiev.ua -> /var/mail/jared.kiev.ua/jared transport = virtual_delivery
Если ошибок нет, проверим распознавание почты на внешние адреса:
# exim -bt support@microsoft.com support@microsoft.com router = dnslookup, transport = remote_smtp host mail.messaging.microsoft.com [65.55.88.22] MX=10
Будем считать, что все прошло хорошо и можно пробовать отправлять настоящие тестовые письма локальному пользователю и себе любимому на внешний ящик:
# exim -v jared@jared.kiev.ua
From: jared@jared.kiev.ua
To: jared@jared.kiev.ua
Subject: test
This is a test
^D
LOG: MAIN
<= root@jared.kiev.ua U=root P=local S=363 T="test"
# delivering 1NZ4L1-0004bb-6B
LOG: MAIN
=> /var/mail/jared.kiev.ua/jared <jared@jared.kiev.ua> R=virtual_domains T=virtual_delivery
LOG: MAIN
Completed
# exim -v jared@mail.ru
From: jared@jared.kiev.ua
To: jared@mail.ru
Subject: test 2
This is a test #2
^D
LOG: MAIN
<= root@jared.kiev.ua U=root P=local S=362 T="test 2"
# delivering 1NZ4Sz-0004cT-DY
Connecting to mail.mail.ru [193.84.77.159]:25 from 123.123.123.123 ... connected
SMTP<< 220 mail.mail.ru, ESMTP EXIM 4.71
SMTP>> EHLO mail.mail.ru
SMTP<< 250-mail.mail.ru Hello mail.mail.ru [123.123.123.123]
250-SIZE 52428800
250-PIPELINING
250-AUTH PLAIN LOGIN CRAM-MD5
250-STARTTLS
250 HELP
SMTP>> STARTTLS
SMTP<< 220 TLS go ahead
SMTP>> EHLO mail.mail.ru
SMTP<< 250-mail.mail.ru Hello mail.mail.ru [123.123.123.123]
250-SIZE 52428800
250-PIPELINING
250-AUTH PLAIN LOGIN CRAM-MD5
250 HELP
SMTP>> MAIL FROM:<root@jared.kiev.ua> SIZE=1396
SMTP>> RCPT TO:<jared@mail.ru>
SMTP>> DATA
SMTP<< 250 OK
Вот в принципе и все, дальше можно проверять разные варианты авторизиции, но, как показывает практика, эта секция, как правило, работает сразу, кому интересно – вот статья Wombat-a, а мы будем потихоньку запускаться:
# /usr/local/etc/rc.d/exim start
В итоге в /var/log/exim/mainlog должно появиться такое сообщение:
2010-01-24 17:09:58 exim 4.71 daemon started: pid=17604, -q30m, listening for SMTP on [123.123.123.123]:25
Теперь еще для пущей красоты добавим в файл /etc/crontab строку
0 0 * * * /usr/local/sbin/exicyclog
Вуаля, мы взлетели. Спасибо за выбор нашей авиакомпании, желаю приятного полета!
)
Почтовый сервер как у провайдера, часть 1: Exim
Почтовый сервер как у провайдера, часть 2: ClamAV, SpamAssassin, Dovecot
Почтовый сервер как у провайдера, часть 3: Vexim
Почтовый сервер как у провайдера, часть 4: взлетаем
#1 by Denis Kharkov on 29.01.2010 - 16:37
Quote
Позвольте порекомендовать вам так же использовать exilog для мониторинга логов
#2 by jared on 29.01.2010 - 17:39
Quote
Интересная штука, не знал про нее. А про логи напишу чуть позже, будет статья со скриптом для отрисовки графиков, работает где-то так:
#3 by Denis Kharkov on 29.01.2010 - 18:56
Quote
Я так понимаю что эту статистику вы снимаете по snmp ?
.
Могу так же посоветовать Вам в качестве веб интерфейса для почты
AfterLogic Webmail Pro. Продукт платный но цены не кусаются,а качество работы намного выше и не сравнится ни с одним бесплатным продуктом аля RoundCube и тп
#4 by jared on 29.01.2010 - 19:00
Quote
Нет, статистика собирается простым перловым парсером лога. Что до платных вебмейлов – ну не знаю. Мои пользователи пока не жаловались на куб, потому платить за что-то сейчас особого смысла нету. Мы же просто провайдер а не большая почтовая лавка
)
#5 by Denis Kharkov on 29.01.2010 - 19:03
Quote
Я данную статистику снимаю по snmp,и через cacti вывожу в график
если будет интересно обращайтесь. Буду рад помочь
#6 by jared on 29.01.2010 - 19:05
Quote
Ну так регистрируйтесь и статью в студию!
)
Сайт, правда, еще сырой совсем, но со временем докручу до приличного вида.
#7 by Artem on 25.08.2010 - 13:20
Quote
# chown -R exim:mail /var/mail
# chown -R exim:mail /var/spool
так делать нельзя
#8 by cappelikan on 31.08.2010 - 16:22
Quote
Вот подсказали как решить вот такую проблему
Исходящая почта, ваяем shadow bcc.
В главный конфиг:
system_filter = /etc/exim/systemfilter.txt
system_filter_directory_transport = local_copy_outgoing
И в него же в секцию транспортов:
local_copy_outgoing:
driver = appendfile
delivery_date_add
envelope_to_add
return_path_add
group = exim
user = exim
mode = 0660
maildir_format = true
create_directory = true
Юзера и группу exim не забудь сменить на свои, если у тебя другие.
Дальше в /etc/exim/systemfilter.txt:
if $sender_address_domain is example.com
then
unseen save /var/mail/example.com/mailarchive/.${tr{$sender_address}{.}{_}}.outgoing/
endif
example.com меняй на свое. Вуаля.
Теперь заворачиваем входящее через shadow transport.
приводим транспорт address_directory к такому виду (это для maildir, а если используешь доставку на реальные аккаунты системы, то и транспорт local_delivery):
address_directory:
driver = appendfile
create_directory
delivery_date_add
directory_mode = 770
envelope_to_add
maildir_format
return_path_add
shadow_transport = local_copy_incoming
shadow_condition = ${if eq {$domain}{example.com}{yes}{no}}
Ну и к транспортам добавляешь вот такой.
local_copy_incoming:
driver = appendfile
directory = /var/mail/example.com/mailarchive/ .${tr {$local_part}{.}{_}}@${tr {$domain}{.}{_}}.incoming/
delivery_date_add
envelope_to_add
return_path_add
group = exim
user = exim
mode = 0660
maildir_format = true
create_directory = true
#9 by strelokr on 02.12.2010 - 10:55
Quote
А куда девается почта которая не прошла по рейтингу что это спам.?
#10 by slonspirit on 05.09.2011 - 16:40
Quote
не запускаеццо ексим (((
exim -bV
Exim version 4.76 #0 (FreeBSD 8.2) built 02-Sep-2011 22:15:20
Copyright (c) University of Cambridge, 1995 – 2007
Probably Berkeley DB version 1.8x (native mode)
Support for: crypteq iconv() use_setclassresources PAM Perl Expand_dlfunc TCPwrappers OpenSSL Content_Scanning DKIM Old_Demime Experimental_SPF
Lookups (built-in): lsearch wildlsearch nwildlsearch iplsearch cdb dbm dbmnz dnsdb dsearch mysql nis nis0 passwd
Authenticators: cram_md5 dovecot plaintext spa
Routers: accept dnslookup ipliteral manualroute queryprogram redirect
Transports: appendfile/maildir/mailstore/mbx autoreply lmtp pipe smtp
Fixed never_users: 0
Size of off_t: 8
2011-09-05 20:25:22 Exim configuration error in line 69 of /usr/local/etc/exim/configure:
Unexpected end of configuration file: .endif missing
#11 by slonspirit on 05.09.2011 - 17:47
Quote
оч странная фишка… закоментил везде в конфигах
.ifdef
.endif
(т.е. выполнять без проверки на условие/галочки)
всё вроде заработало…. непонятно только почему…
может где-то что-то недособирал?