Вход на хостинг
IT-новости
20.04.2016 iPhone 2017 года поместят в водонепроницаемый корпус из стекла
Линейка iPhone в новом году серьезно поменяется. В этом уверен аналитический исследователь Мин Чи Ку......
30.07.2015 Ищем уникальный контент для сайта
Ищем уникальный контент для сайта Без уникального контента Ваш сайт обречен на то, что его страницы......
Очень напоминает регулярные выражения, не правда ли? Например, следующее правило меняет адрес вида domain!user на user@domain при условии, что часть «user» содержит хотя бы один символ:
R$* ! $+ $2 @ $1
Следующее правило (взято из набора SParse1) демонстрирует взаимодействие с базой: вместо фрагмента, соответствующего шаблону (в угловых скобках), подставляется значение из mailertable. Слово «lookup» здесь является простым комментарием:
R< $+ > $* $: < $(mailertable $1 $) > $2 lookup
Конечно, настраивать эти правила вручную – занятие неблагодарное, но в ряде случаев с их помощью можно добиться нестандартных результатов.
Тестирование правил
Как видите, синтаксис правил обработки довольно сложен (по крайней мере, читать их очень неудобно). Чтобы убедиться в правильности работы, в Sendmail предусмотрен специальный режим тестирования:
serg$ sendmail -bt
ADDRESS TEST MODE (ruleset 3 NOT automatically invoked)
Enter <ruleset> <address>
> 3,0 admin@my
canonify input: admin @ my
Canonify2 input: admin < @ my >
Canonify2 returns: admin < @ my . domain . ru . >
canonify returns: admin < @ my . domain . ru . >
parse input: admin < @ my . domain . ru . >
Parse0 input: admin < @ my . domain . ru . >
Parse0 returns: admin < @ my . domain . ru . >
ParseLocal input: admin < @ my . domain . ru . >
ParseLocal returns: admin < @ my . domain . ru . >
Parse1 input: admin < @ my . domain . ru . >