Я установил и настроил Exim4 на Debian9. Все работает нормально, пока я не добавлю маршрутизатор / транспорт для автоответа.
Я добавил эти поля:
[Раздел маршрутизатора]
uservacation:
driver = redirect
check_local_user
allow_filter
hide_child_in_errmsg
ignore_eacces
ignore_enotdir
reply_transport = vacation_reply
no_verify
require_files = $home/.vacation.msg
file = $home/.vacation.msg
unseen
[Транспортная секция]
vacation_reply:
driver = autoreply
Когда я добавляю их, я не могу определить пользователя, у которого есть .vacation.msg в домашней папке хоста, и при выполнении "exim -bt user@domain.com" я получаю:
user@domain.com cannot be resolved at this time: error in redirect file: missing or malformed local part (expected word or "<") in "body text of file vacation.msg"
Есть идеи, что вызывает эту ошибку?
В file =
устанавливает файл, содержащий правила фильтрации, которые включены allow_filter
директива. Вы можете переместить file =
в транспортный файл vacation_reply, где он настраивает, что отправлять в качестве ответа, но использование файла фильтра обеспечивает большую гибкость и является моим предпочтением.
Этот файл фильтра должен выглядеть примерно так:
# Exim filter
if personal
then vacation
from "user@domain.com"
subject "automatic reply: out of office"
once .vacation.once
once_repeat 5d
endif
personal
проверяет, есть ли адрес электронной почты получателя в заголовках (например, это не список рассылки).
vacation
обрабатывает отправку ответного сообщения. В once
файл регистрирует, что ответ был отправлен, поэтому несколько сообщений не отправляются на один и тот же адрес в течение 5 дней, как указано в once_repeat 5d
линия.
Один совет: не указывайте return message
или используйте исходную тему как часть темы сообщения об отпуске, так как это может быть использовано для рассылки спама.