>Где рыть?? Подскажите пожалуйста.
ВсЕ забили на нашу проблему :))))
Окей, могу понять.
Мы немного поменяли условия, и решили запускать перловые скрипты встроенным интерпретатором Exim.
Возникают следующие проблемы:
запуск перловой процедуры из MTA Exim (работает вполне нормально):
address_data = ${perl{sendAuthReq}}
Это в конфигурации exim.
сама процедура в перле:
sub sendAuthReq
{
... пропущено...
my $user = Exim::expand_string{'$local_part'};
Exim::log_write("Ive got user = " . $user . "\n");
.. пропущено...
}
В логах Exima:
2005-06-28 14:28:34 Ive got user = HASH(0x8136170)
В документации Exim:
Within any Perl code called from Exim, the function Exim::expand_string is available to call back into Exim's string expansion function. For example, the Perl code
my $lp = Exim::expand_string('$local_part');
makes the current Exim $local_part available in the Perl variable $lp. Note those are single quotes and not double quotes to protect against $local_part being interpolated as a Perl variable.
$local_part содержит в себе часть емылового адреса до собаки.
---------------------------
пробую дебугом:
прибавляю в конфигурацию exim:
debug_print $local_part
там где address_data = ${perl{sendAuthReq}}
и запускаю его с флагом отладки...
в STDERRе:
......... пропущено ......
37835 --------> localuser router <--------
37835 local_part=mail-test domain=мой_хост.мой_домен.ru
37835 expanding: $local_part
37835 result: mail-test
37835 mail-test
37835 processing address_data
37835 expanding: sendAuthReq
37835 result: sendAuthReq
37835 Starting Perl interpreter
37835 LOG: MAIN
37835 Ive got user = HASH(0x8136170)
37835
37835 LOG: MAIN
37835 maildir= quota= user=HASH(0x8136170)
37835
.......... пропущено. ........
Как сие понять?? С чего эта падла вставляет хэш вместо нормального логина до собаки?