В postfix я хотел бы иметь способ иметь дело с учетными записями электронной почты, которые больше не активны, если postfix отправляет стандартное сообщение типа «Адрес получателя отклонен», но все же перенаправляет электронное письмо другому пользователю. Таким образом, если кто-то отправит электронное письмо на адрес employee.who.quit@example.com, он вернет сообщение отправителю для дальнейшего использования, но письмо все равно будет перенаправлено на active.employee@example.com для решения с участием. Файлы .vacation и / или .forward подвели меня, потому что они либо отвечают, либо пересылают, но не то и другое одновременно. Какие-нибудь советы?
Вы нарушаете RFC 5321. Не делайте этого! В этом случае отклонение писем абсолютно нормально. Сделай это.
Вместо того, чтобы отправлять сообщения о недоставке и пересылку, вы должны отправить автоответчик и пересылать.
Как заметил в ответе @mailq, то, что вы предлагаете, нарушает RFC, поэтому вам не следует этого делать, и, вероятно, вы не найдете много вариантов для этого. Вместо этого перенаправьте его и обработайте автоответчик, как вам удобнее (с нового или старого адреса).
Посмотрев на header_checks(5)
и pcre_checks(5)
, Я бы поэкспериментировал, поместив что-то подобное в header_checks
файл:
if /^To: employee.who.quit*/
REDIRECT active.employee@example.com
REJECT "This individual no longer works at example.com."
endif
Человек, с которым я связался, говорит, что я не могу использовать REJECT
в header_check
, но у меня не было возможности понять, почему это может быть правдой, а может и нет. (Я могу думать об обоих аргументах.) Если REJECT
не работает, я бы в следующий раз поэкспериментировал с FILTER
чтобы отправить электронное письмо на MDA, который обработает ответ отправителю.
В качестве альтернативы я мог бы также посмотреть на .forward
отправка автоматическому почтовому обработчику, который выполняет свои собственные перенаправления и отвечает отправителю.