Доброго времени суток всем!Можно ли в Sendmail'е сделать так, чтобы допустим при вводе команды RCPT TO: <'user'@domain.ru> выдавалась ошибка о том, что нельзя использовать символы ' или "?
Как это можно роешить?Также можно ли сделать при вводе RCPT TO: <user>, чтобы данный user сразу же преобразовывался в user@domain.ru?
Спасибо!
>Можно ли в Sendmail'е сделать так, чтобы допустим при вводе команды RCPT TO: <'user'@domain.ru> выдавалась ошибка о том, что нельзя использовать символы ' или "?
Добавляем в sendmail.mc:
define(`confOPERATORS', `.:%@!^/[ ]+\'')dnl
LOCAL_RULESETS
SLocal_check_rcpt
R$* ' $#error $@ 5.1.1 $: "error">Также можно ли сделать при вводе RCPT TO: <user>, чтобы данный user сразу же преобразовывался в user@domain.ru?
MASQUERADE_AS(`your.domain.ru')dnl
FEATURE(`always_add_domain')dnl
FEATURE(`allmasquerade')
FEATURE(`masquerade_envelope')dnl
или писать своё правило в LOCAL_RULE_2 (хотя на заголовки оно не повлияет).
>Добавляем в sendmail.mc:
>define(`confOPERATORS', `.:%@!^/[ ]+\'')dnl
>LOCAL_RULESETS
>SLocal_check_rcpt
>R$* ' $#error $@ 5.1.1 $: "error"Добавил.
Потом проверяю:
...
mail from: user1@domain.ru
250 2.1.0 user1@domain.ru... Sender ok
rcpt to: 'user2'@domain.ru
250 2.1.5 'user2'@domain.ru... Recipient ok
...Адрес принимает, ошибку не выдает...
В чем же может быть проблема?
>>Добавляем в sendmail.mc:
>>define(`confOPERATORS', `.:%@!^/[ ]+\'')dnl
>>LOCAL_RULESETS
>>SLocal_check_rcpt
>>R$* ' $#error $@ 5.1.1 $: "error"
>
>Добавил.
>
>Потом проверяю:
>...
>mail from: user1@domain.ru
>250 2.1.0 user1@domain.ru... Sender ok
>rcpt to: 'user2'@domain.ru
>250 2.1.5 'user2'@domain.ru... Recipient ok
>...
>
>Адрес принимает, ошибку не выдает...
>
>В чем же может быть проблема?У меня выдаёт...
> test_rule 'user'@domain.ru
test_rule input: ' user ' @ domain . ru
-----trying rule: $* ' $*
-----rule matches: $# error $@ 5 . 1 . 1 $: "error!!!"
rewritten as: $# error $@ 5 . 1 . 1 $: "error!!!"
test_rule returns: $# error $@ 5 . 1 . 1 $: "error!!!"Сделай так. Запусти сендмейл в режиме отладки (путь может быть другой):
/usr/lib/sendmail -bt -d21.12
затем введи:
> Local_check_rcpt 'user'@domain.ru
покажи результат.
>У меня выдаёт...
>> test_rule 'user'@domain.ru
>test_rule input: '
>user ' @ domain . ru
>-----trying rule: $* ' $*
>-----rule matches: $# error $@ 5 . 1 . 1 $: "error!!!"
>
>rewritten as: $# error $@ 5 . 1 . 1 $: "error!!!"
>
>test_rule returns: $# error $@
>5 . 1 . 1 $: "error!!!"
>
>Сделай так. Запусти сендмейл в режиме отладки (путь может быть другой):
>/usr/lib/sendmail -bt -d21.12
>затем введи:
>> Local_check_rcpt 'user'@domain.ru
>покажи результат....
> Local_check_rcpt 'nrtpc'@north.ru
Local_check_rcpt input: ' user ' @ domain . ru
Local_check_rcpt returns: ' user ' @ domain . ru
...
>>У меня выдаёт...
>>> test_rule 'user'@domain.ru
>>test_rule input: '
>>user ' @ domain . ru
>>-----trying rule: $* ' $*
>>-----rule matches: $# error $@ 5 . 1 . 1 $: "error!!!"
>>
>>rewritten as: $# error $@ 5 . 1 . 1 $: "error!!!"
>>
>>test_rule returns: $# error $@
>>5 . 1 . 1 $: "error!!!"
>>
>>Сделай так. Запусти сендмейл в режиме отладки (путь может быть другой):
>>/usr/lib/sendmail -bt -d21.12
>>затем введи:
>>> Local_check_rcpt 'user'@domain.ru
>>покажи результат.
>
>...
>> Local_check_rcpt 'nrtpc'@north.ru
>Local_check_rcpt input: ' user ' @ domain . ru
>Local_check_rcpt returns: ' user ' @ domain . ru
>...
Надеюсь в строке
R$* ' $#error $@ 5.1.1 $: "error"
присутствует символ табуляции (после одинарной кавычки и $#error)?
т.е. должно быть
R$* '<TAB>$#error $@ 5.1.1 $: "error"Ё-пть... сам понял косяк теперь (мой :) ). забыл дописать правило - надо так:
R$* ' $*<TAB>$#error $@ 5.1.1 $: "error"
У себя в правиле правильно написал, а здесь забыл. Сорри...
>Надеюсь в строке
>R$* ' $#error $@ 5.1.1 $: "error"
>присутствует символ табуляции (после одинарной кавычки и $#error)?
>т.е. должно быть
>R$* '<TAB>$#error $@ 5.1.1 $: "error"
>
>Ё-пть... сам понял косяк теперь (мой :) ). забыл дописать правило -
>надо так:
>R$* ' $*<TAB>$#error $@ 5.1.1 $: "error"
>У себя в правиле правильно написал, а здесь забыл. Сорри...Все заработало! АгрАмАдное человеческое спасибо! :-)