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

Передача символа at в procmail в virtusertable

Совет FAQ на http://www.sendmail.org/faq/section3#3.29 похоже, полагается на тот факт, что следующая запись в virtusertable:

@domain.com   user+%1

вызовет $ 1 в конфигурации .procmailrc, например:

ENV_TO=$1

иметь значение «xyz», если полученное электронное письмо было для xyz@domain.com, и «abc» для abc@domain.com. (Просмотр журнала procmail, кажется, подтверждает это.)

Однако я бы хотел, чтобы $ 1 вместо этого имел значение «xyz@domain.com». Так я могу обрабатывать несколько доменных имен под одним и тем же пользователем.

Следующая конфигурация virtusertable / .procmailrc, похоже, подходит для этой цели:

виртуозный:

@domain1.com   userA+%1\@domain1.com
@domain2.com   userA+%1\@domain2.com

.procmailrc:

ENV_TO=$1

:0f
* ENV_TO ?? .
| formail -i "X-Envelope-To: $ENV_TO"

:0fE
| formail -i "X-Envelope-To: UNKNOWN"

:0:
* ^X-Envelope-To: xyz\\@domain1.com
$HOME/userA/domain1.com/mail/xyz

:0:
* ^X-Envelope-To: abc\\@domain2.com
$HOME/userA/domain2.com/mail/abc

Однако я бы хотел избежать появления двойных обратных косых черт в X-Envelope-To. Удаление [того, что кажется] обратной косой чертой в кавычках в virtusertable не удается, например:

@domain1.com   userA+%1@domain1.com
@domain2.com   userA+%1@domain2.com

кажется, вызывает "чрезмерную ошибку рекурсии".

У меня вопрос:

Как правильно указать at-sign в virtusertable, чтобы $ 1, поступающий в .procmailrc, содержал только «abc@domain1.com», а не «abc \ @ domain1.com»?

Или, если это невозможно, как мы можем удалить обратную косую черту внутри самой обработки .procmailrc, чтобы ENV_TO (в конечном итоге) был назначен «abc@domain1.com», а не «abc \ @ domain1.com»?

Вы делаете свой virtusertable следующим образом: @domain.com user+%1-domain.com а затем вы создаете сценарий, который читает X-Envelope-To: заголовок подготовлен из formail который заменяет его правильным значением. Другими словами, вам нужна собственная версия formail как раз для этой цели. Вы можете сделать это даже с вашей текущей настройкой, когда у вас будет сценарий, анализирующий X-Envelope-To: заголовок и удалите обратную косую черту.