Я использую Ubuntu 16.04 LTS на виртуальной машине. Это почтовый сервер для небольшой медицинской клиники. Мы пытаемся переместить фильтрацию почты со стороны клиента на сторону сервера, и у меня возникают проблемы с файлами правил $ HOME / .mailfilter.
Я читал различные копии man-страницы в разных местах, но информации о включении регистрации не так много. Пример данных, с которыми я работаю, можно найти здесь: Страница управления Maildrop Filter
На данный момент моя структура каталогов выглядит следующим образом:
Три файла, которые я создал, чтобы содержать правила фильтрации, содержат очень простые инструкции:
logfile "/var/log/maildropfilter.log"
log "Executing code in {file_path}"
Естественно, я изменяю "{file_path } "быть тем файлом, в котором я сейчас нахожусь. Я надеюсь, что, если файл правила будет выполнен, в файле журнала будет инструкция" Выполнение кода в {file_path} ", и я буду знать, какой из трех файлов начните вводить управляющую логику.
Согласно документации или, точнее, моей интерпретации, после получения электронного письма на мою учетную запись электронной почты для пользователя jaredclemence
, я должен увидеть следующее в моем файле журнала:
Executing code in /etc/courier/maildroprc
Executing code in /home/jaredclemence/.mailfilter
Я не должен видеть никаких ссылок на третий файл в Maildir, потому что это не $HOME/.mailfilter
, на который указывает документация. Я создал этот файл только на тот случай, если $ HOME ссылается на корень Maildir, а не на корень домашней папки учетной записи пользователя.
Проблема в том, что, когда я отправляю электронное письмо пользователю jaredclemence
из-за пределов сети, электронное письмо получено, но файл журнала пуст.
Что я делаю не так?
Есть ли что-то особенное, что я должен сделать, чтобы зарегистрировать свои правила фильтрации, или файл находится в правильном месте, все что есть? Требуется?
Если наличие файла в правильном месте - это все, что требуется, то что не так с кодом, который я написал, который устанавливает файл журнала и выводит сообщение в войти с помощью команды log
?
Любая помощь приветствуется.
Я прочитал man-файл maildrop и узнал больше о различных режимах, в которых он будет работать, и определил, что один из трех режимов не использует Правила .mailfilter.
Отмечая, что существует ручной режим, я выполнил команду maildrop в ручном режиме, чтобы посмотреть, был ли файл журнала активирован и использован.
После запуска команды maildrop вручную я проверил следующий вывод:
Executing commands from /home/jaredclemence/.mailfilter
Date: Thu Jan 4 09:37:05 2018
From: Synegi Inc <klally@synegi.com>
Subj: Wishing You a Happy New Year from Synegi!
File: /var/mail/jaredclemence (29594)
Это интересно, потому что глобальный файл правил никогда не активируется. Это также интересно, поскольку оно доставляет почту в mbox по адресу /var/mail/jaredclemence
, который не является Maildir.
.mailfilter
подать инструкцию.
Отсюда я начал читать man-страницы для trace (8), postfix (1) и local (8), чтобы посмотреть, смогу ли я отследить, какая программа используется агентом доставки почты.
После долгих исследований и поисков я обнаружил, что моя система не использует maildrop для доставки.
Если у вас возник тот же вопрос, сначала определите, какой агент доставки почты использует ваша система.
Начните с вашего SMTP-сервера. Мой постфикс.
Postfix использует свой собственный локальный агент доставки в процессе, называемом local (8). В файле /etc/postfix/main.cf
найдите множество ссылок на любой из локальных (8) параметров передачи обслуживания. Вероятно, двумя наиболее заметными будут mailbox_transport
или virtual_transport
(разница зависит от того, имеют ли люди, получающие почту, учетные записи с домашними каталогами или виртуальная учетная запись поддерживается).
Если эти параметры не установлены, то postfix, вероятно, обрабатывает собственную локальную доставку, и, насколько я могу судить, postfix не выполняет перенаправление на основе проверки и доставку в определенные почтовые ящики, только с одного адреса электронной почты на другой на основе серия адресов переадресации или псевдонимов.
Итак, если вы пытаетесь реализовать расширенную фильтрацию с помощью Courier или Dovecot-LDA или Dovecot-LMTP, вам нужно будет указать Postfix с помощью настроек mailbox_transfer
или virtual_transfer
, какую программу вызывать.