Записки программиста, обо всем и ни о чем. Но, наверное, больше профессионального.

2015-09-30

exim4 catchall router

Что-то последний месяц выдался нелегким, в плане свободного времени. И работы много, дедлайны всякие, и в Строгино съездить покататься на Шайтан-доске (какой-никакой в Строгино ветер, а летать иногда даже у меня получается). То шоппинг на полдня, то к родне за город надо ехать. Не одно, так другое, короче. Времени на блог совсем не было.
Вот, выдался свободный часик, расскажу про настройку почтовика SMTP exim4.

Задача была поставлена так: на девелоперском сервере идет отладка документооборота. Там всякие уведомления по почте отсылаются и, в целях понимания, что, собственно говоря, тут происходит, надо эти уведомления копировать в один почтовый ящик. Для мониторинга и изучения.
Проще говоря, всю исходящую почту копировать на определенный ящик.

В интернетах такая задача известна как catchall router. Ибо в exim4 движение почты регулируется роутерами.

Сразу надо уточнить две очень важные детали. Они влияют на всё.

1 – конфиг построен разбитым на файлы (Debian 7 «wheezy»), что видно внутри
/etc/exim4/update-exim4.conf.conf
как
dc_use_split_config='true'

2 – почтовик настроен на отправку всего на smarthost, что видно (там же) как
dc_eximconfig_configtype='smarthost'

Первый пункт влияет на то, где надо тюкнуть. В каком месте файловой системы.
И второй, собственно, тоже про это.
В интернетах полно инструкций по наладке catchall роутера для exim, но для указанной конфигурации они не подходят от слова «совсем».

Короче, что надо сделать.

В папке
/etc/exim4/conf.d/router/
создать файлик
/etc/exim4/conf.d/router/170_vasnake-catchall_outgoing
Почему? А потому, что:
1 – сплит_конфиг;
2 – в файле
/etc/exim4/conf.d/router/200_exim4-config_primary
лежит роутер для смартхоста, завершающий обработку цепочки роутеров. Наш кастомный роутер должен быть до него.

В файлике
/etc/exim4/conf.d/router/170_vasnake-catchall_outgoing
написать что-то вроде
catch_all_outgoing:
    driver = redirect
    data = mydebug@trash.com
    unseen

После чего останется только сделать ребилд конфигов, перезапустить сервис и отладить лажу:
    update-exim4.conf
    service exim4 restart
# Print a listing of the messages in the queue
    exim -bp
# Print what Exim is doing right now
    exiwhat
# Searching the queue with exiqgrep
# Use -z to match only frozen messages
# Use -i to print just the message-id
    exiqgrep -z -i
# Remove a message from the queue
    exiqgrep -z -i | xargs exim -Mrm
# Test how exim will route a given address
    exim -bt vasnake@gmail.com
    echo "This is the message body" | mutt -a "/root/installed-software.log" -s "subject of message" -- vasnake@gmail.com
    tail -n 300 -f /var/log/exim4/mainlog

В процессе решения задачи были использованы следующие материалы:



Как-нибудь в другой раз расскажу, как наладить smarthost на отправку почты через Яндекс.Почта для домена.



original post http://vasnake.blogspot.com/2015/09/exim4-catchall-router.html

Комментариев нет:

Отправить комментарий

Архив блога

Ярлыки

linux (241) python (191) citation (186) web-develop (170) gov.ru (159) video (124) бытовуха (115) sysadm (100) GIS (97) Zope(Plone) (88) бурчалки (84) Book (83) programming (82) грабли (77) Fun (76) development (73) windsurfing (72) Microsoft (64) hiload (62) internet provider (57) opensource (57) security (57) опыт (55) movie (52) Wisdom (51) ML (47) driving (45) hardware (45) language (45) money (42) JS (41) curse (40) bigdata (39) DBMS (38) ArcGIS (34) history (31) PDA (30) howto (30) holyday (29) Google (27) Oracle (27) tourism (27) virtbox (27) health (26) vacation (24) AI (23) Autodesk (23) SQL (23) Java (22) humor (22) knowledge (22) translate (20) CSS (19) cheatsheet (19) hack (19) Apache (16) Manager (15) web-browser (15) Никонов (15) Klaipeda (14) functional programming (14) happiness (14) music (14) todo (14) PHP (13) course (13) scala (13) weapon (13) HTTP. Apache (12) SSH (12) frameworks (12) hero (12) im (12) settings (12) HTML (11) SciTE (11) USA (11) crypto (11) game (11) map (11) HTTPD (9) ODF (9) Photo (9) купи/продай (9) benchmark (8) documentation (8) 3D (7) CS (7) DNS (7) NoSQL (7) cloud (7) django (7) gun (7) matroska (7) telephony (7) Microsoft Office (6) VCS (6) bluetooth (6) pidgin (6) proxy (6) Donald Knuth (5) ETL (5) NVIDIA (5) Palanga (5) REST (5) bash (5) flash (5) keyboard (5) price (5) samba (5) CGI (4) LISP (4) RoR (4) cache (4) car (4) display (4) holywar (4) nginx (4) pistol (4) spark (4) xml (4) Лебедев (4) IDE (3) IE8 (3) J2EE (3) NTFS (3) RDP (3) holiday (3) mount (3) Гоблин (3) кухня (3) урюк (3) AMQP (2) ERP (2) IE7 (2) NAS (2) Naudoc (2) PDF (2) address (2) air (2) british (2) coffee (2) fitness (2) font (2) ftp (2) fuckup (2) messaging (2) notify (2) sharepoint (2) ssl/tls (2) stardict (2) tests (2) tunnel (2) udev (2) APT (1) CRUD (1) Canyonlands (1) Cyprus (1) DVDShrink (1) Jabber (1) K9Copy (1) Matlab (1) Portugal (1) VBA (1) WD My Book (1) autoit (1) bike (1) cannabis (1) chat (1) concurrent (1) dbf (1) ext4 (1) idioten (1) join (1) krusader (1) license (1) life (1) migration (1) mindmap (1) navitel (1) pneumatic weapon (1) quiz (1) regexp (1) robot (1) science (1) serialization (1) spatial (1) tie (1) vim (1) Науру (1) крысы (1) налоги (1) пианино (1)