я использую procmail для обработки почты на стороне сервера. Я пытаюсь настроить один адрес электронной почты на сервере, который поддерживает несколько доменов (в приведенном ниже примере domain.net
и domain.com
). Я хочу, чтобы почту отправляли на user@domain.net
идти в bob
и почта отправлена на user@domain.com
идти в sara
.
VERBOSE=off
LOGFILE=/dev/null
:0
* .domain.net
bob
:0
* .domain.com
sara
Вышеупомянутый рецепт, кажется, работает достаточно хорошо, поскольку он перехватывает входящую почту на domain.net
и пересылает его bob
.
Однако вместо пересылки почты на domain.com
к sara
, он создает файл в /home/user
называется sara
.
Что я делаю не так?
Вы доставляете сообщение в локальный файл, а не отправляете сообщение пользователям. Кроме того (как вы указали в своем комментарии) вы не копируете сообщение, поэтому доставка останавливается после первого правила сопоставления.
# 'c'opy the message to deliver it twice.
# ! to forward the message
:0 c
* .domain.net
! bob
:0
* .domain.com
! sara
На странице руководства prcomailrc говорится:
Все остальное будет использоваться как имя почтового ящика (либо имя файла, либо каталог, абсолютный или относительный к текущему каталогу (см. MAILDIR)). Если это имя файла (возможно, еще не существующее), сообщение будет добавлено к нему.
Лучший способ отладить проблемы с procmail - установить verbose
и logfile
в твоем .procmailrc
. Изучение файла журнала будет иметь большое значение для выяснения того, почему procmail действует определенным образом.
РЕДАКТИРОВАТЬ: Обновлено с копией информации на основе комментария OP.