У меня 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.