Я хочу направлять все входящие электронные письма для локальных доменов только на одну учетную запись, если учетная запись не настроена для этого пользователя.
Я также хотел бы, чтобы каждое электронное письмо было записано в отдельном файле в папке пользователя.
У меня есть пользователь catchall с / home / catchall / path, где у меня есть почтовая папка для этого, но до сих пор электронные письма не доставляются (таким образом, мое правило не работает) или они доставляются в файл / etc / mail / catchall.
Я пытался собрать что-нибудь из конфигурации Exim, но пока ничего не работает.
http://exim.org/exim-html-current/doc/html/spec_html/ch20.html
Не совсем понятно, что вы действительно хотите, говоря "каждое электронное письмо должно быть записано в отдельный файл"
Если вы используете формат maildir, все сообщения в любом случае сохраняются в отдельных файлах. Просто добавьте специальный роутер ПОСЛЕ всего существующего:
unknown:
driver = redirect
domains = +local_domains
data = unknown@my.domain.tld
Если вы используете формат почтового ящика и хотите, чтобы сообщения для определенного пользователя сохранялись в его собственном файле почтового ящика, используйте специальный транспорт:
# router
unknown:
driver = accept
domains = +local_domains
transport = t_unknown
# transport
t_unknown:
driver = appendfile
file = /var/mail/$domain/$local_part
group = mail
user = $local_part
mode = 0660
Настройка Exim для перехвата всей электронной почты, отправляемой в локальные домены:
После:
begin routers
Добавить:
catchall_pub:
driver = redirect
domains = +local_domains
user = catchall
data = catchall@localhost
Это позволит перехватить все для всех local_domains. Устанавливаются они так:
domainlist local_domains = @ : localhost : localhost.localdomain : example.com
Примечание: вы можете просто указать, чтобы перехватить один домен и создать несколько правил для нескольких доменов.
Чтобы настроить Exim для создания отдельных файлов для каждого электронного письма, вам просто нужно переключить локальную доставку в режим каталога следующим образом:
Найти:
local_delivery:
driver = appendfile
file = /var/mail/$local_part
delivery_date_add
envelope_to_add
return_path_add
group = mail
mode = 0660
Добавить вместо file = /var/mail/$local_part
:
directory = $home/mail
maildir_format
maildir_use_size_file
Примечание: это автоматически создаст хороший почтовый каталог в домашней папке пользователя, когда он получит свое первое письмо. Это хорошо известная структура cur /, new /, tmp / one.