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

Проблема с procmail - разделение доставки одного адреса в зависимости от домена назначения

я использую 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.