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

Exim собирает и записывает отдельные файлы электронной почты

Я хочу направлять все входящие электронные письма для локальных доменов только на одну учетную запись, если учетная запись не настроена для этого пользователя.

Я также хотел бы, чтобы каждое электронное письмо было записано в отдельном файле в папке пользователя.

У меня есть пользователь 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.