Назад | Перейти на главную страницу

Базовая конфигурация exim - перенаправление всех исходящих писем на локальный адрес

У меня exim работает на сервере разработки.

В настоящее время он не может доставлять почту никуда, кроме как локально. Но это нормально - я не хочу случайно спамить всю нашу пользовательскую базу. Но при этом сложно увидеть, работает ли система электронной почты.

Итак, я хочу захватить все электронные письма, которые exim пытается отправить (эти электронные письма генерируются веб-системой CRM на том же сервере), и хранить их в общем почтовом ящике (который я планирую сделать доступным для всех разработчиков через Dovecot / IMAP)

т.е. я хочу перенаправить всю исходящую почту на локальный mbox.

Это возможно? Я полный новичок в exim, и борюсь с этим.

Что вы можете. Вы должны настроить redirect маршрутизатор, например:

catch_all_outgoing:
 driver = redirect
 data = admin [at] email
 unseen

N.B. В unseen средства "продолжай с другими маршрутизаторами". Если вы хотите ТОЛЬКО перехватить электронную почту и не чтобы отправить его предполагаемому получателю, просто удалите его.

Взгляните на документация exim, полно таких примеров.

Простое решение - указать новый маршрутизатор и соответствующий транспорт. Во-первых, мы настраиваем exim для прослушивания другого порта для писем, которые должны быть доставлены в один почтовый ящик. В этом примере используется порт 2525 на 127.0.0.1, поэтому убедитесь, что ваша CRM настроена на отправку сообщений через SMTP через этот порт при запуске тестов. Если почтовый сервер также используется для других целей, вам нужно будет добавить этот адрес и порт в существующие local_interfaces конфигурация.

local_interfaces          = <; 127.0.0.1.2525

Далее нам нужен маршрутизатор, который мы называем development в примере ниже. Мы указываем условие, что сообщения, полученные через SMTP на порт 2525 должен быть принят этим маршрутизатором и передан транспорту, называемому single_box.

Это должно быть размещено сразу после раздела конфигурации exim, помеченного begin routers

begin routers

development:
 debug_print             = "R: client_development for $local_part@$domain"
 driver                  = accept
 condition               = ${if eq {$interface_port}{2525} {1}{0}}
 transport               = single_box
 no_more

Затем нам нужно определить транспорт, который будет принимать перенаправленные сообщения и где-то их сохранять. Мы упростим задачу и сохраним их в одном почтовом ящике. Конфигурацию транспорта можно разместить в любом месте раздела, который начинается begin transports

single_box:
 debug_print             = "T: single_box for $local_part@$domain"
 driver                  = appendfile
 group                   = Debian-exim
 mode                    = 0660
 mode_fail_narrower      = false
 delivery_date_add
 envelope_to_add         = true
 return_path_add         = true
 directory               = /home/mailspace/mailboxes/development/Maildir/
 maildir_format
 create_directory        = true

В этом примере создается почтовый ящик в формате Maildir в соответствующем каталоге; убедитесь, что вы изменили это местоположение на что-то подходящее для вашего сервера. Также убедитесь, что вы изменили имя группы, используемое почтовым сервером; пример здесь предполагает стандартную систему Debian. Maildir - это распространенный формат, в котором сообщения электронной почты сохраняются в виде отдельных файлов. Их можно легко изучить с помощью текстового редактора, а формат Maildir поддерживается dovecot и courier, если вы хотите сделать почтовый ящик доступным с помощью IMAP.