Victor Ustugov пишет:
> Anton wrote:
>>>>> протестируйте перезапись адреса получателя в sendmail -bt -d21.12
>>>>>> желательно как можно более полно, т. е. вообще стОит тестировать
>>> check_rcpt, а уже из него будут выполнены Local_check_rcpt,
>>> Basic_check_rcpt, из Local_check_rcpt будут выполнены Parse0 и 3, а
>>> потом уже и Local_check_compats, из которого будут выполнены
>>> Local_check_compat и check_compat
>>>>>> вывод при этом будет килобайт сто, не меньше. уже по нему нужно искать,
>>> на каком этапе адрес получателя некорректно переписывается
>>>>>> для тестов нужно обязательно использовать те адреса, с которыми возникли
>>> проблемы
>>>>> У меня список рассылки составлялся в Thunderbird в виде "СК: Кому".
>>>> для тестирования в sendmail -bt -d21.12 совершенно не важно, какой MUA
> реально использовался
>>>> Вот sendmail -X:
>> 32509 >>> 235 2.0.0 OK Authenticated
>> 32509 <<< MAIL FROM:<ask на a.com> SIZE=325
>> 32509 >>> 250 2.1.0 <ask на a.com>... Sender ok
>> 32509 <<< RCPT TO:<asd1 на c.com>
>> 32509 >>> 250 2.1.5 <asd1 на c.com>... Recipient ok
>> 32509 <<< RCPT TO:<asd2 на c.com>
>> 32509 >>> 250 2.1.5 <asd2 на c.com>... Recipient ok
>> 32509 <<< RCPT TO:<asd3 на c.com>
>> ..............
>> 32509 <<< RCPT TO:<asd42 на c.com>
>> 32509 >>> 553 5.1.1
>> <asd1 на c.com>,<asd2 на c.com>,<asd3 на c.com>,<asd4 на c.com>,<asd5 на c.com>,...37
>> @c.com>,<asd38 на c.com>,<asd39 на c.com>,<asd40 на c.com>,<asd41 на c.com>...
>> Address too long
>> 32509 <<< [EOF]
>>>>>> Не подскажите как все эти адреса подсунуть для проверки?
>>>> гм... с помощью sendmail -bt можно проверить перезапись одного адреса.
> подсунуть все адреса в одно правило невозможно.
>> для начала нужно таки проверить перезапись для одного адреса. в случае
> корректной работы Local_check_compats на одном адресе уже нужно искать,
> почему возникают проблемы при большом количестве адресов. как минимум в
> лог нужно будет выводить содержимое $f и $rcpt_addr
>> для проверки одного адреса можно использовать такой скрипт:
>>> client_addr="1.2.3.4"
> client_name="ptr.record.of.client_addr"
> helo=${client_name}
> mail_from="ask на a.com"
> mail_addr=${mail_from}
> rcpt_to="asd1 на c.com"
> rcpt_addr=${rcpt_to}
>> ( \
> echo ".D{client_addr}${client_addr}"; \
> echo ".D{client_name}${client_name}"; \
> echo ".Ds${helo}"; \
> echo ".Df${mail_from}"; \
> echo ".D{mail_addr}${mail_addr}"; \
> echo ".D{rcpt_addr}${rcpt_addr}"; \
> echo "check_rcpt ${rcpt_to}"; \
> ) | sendmail -bt -d21.12 > test.out
>>> в первых двух строках необходимо указать A и PTR записи хоста отправителя
>>test.out получается 130Кб. Все проверки в нём заканчиваются:
check_rcpt returns: $# error $@ 5 . 7 . 1 $: "550 bogus HELO name
used: " sndm . test . rr . lan
Ошибка с Address too long возникает только в случает отправки на списки,
если на один, два, тридцать адресов никаких проблем нет, можно ли её
будет отловить таким способом, когда тестируется перезапись одного адреса?