|
|
ru.unix- RU.UNIX ---------------------------------------------------------------------- From : Max Fedotov 2:5054/1.20 10 Sep 2004 09:50:00 To : All Subject : milter --------------------------------------------------------------------------------
Продолжаю мучиться с подменой адреса получателя на сендмэйле. По совету здешних
обитателей посмотрел в сторону MilterAPI. Hаписал фильтр, который мне нужен, но
что-то не работает, сендмэйл даёт отлуп "User unknown". Что в фильтре:
(...)
sfsistat mlfi_envrcpt(SMFICTX *ctx, char **argv)
{
if(check_rcpt(argv[0]))
fwd = 1;
else
fwd = 0;
return SMFIS_CONTINUE;
}
sfsistat mlfi_eom(SMFICTX *ctx)
{
if (fwd == 1) {
smfi_delrcpt(ctx,origemail);
smfi_addrcpt(ctx,COPY_TO_ADDR);
fwd = 0;
}
return SMFIS_CONTINUE;
}
(...)
struct smfiDesc fwd_mail_filter = {
"ForwardMailToSMSC",
SMFI_VERSION,
SMFIF_ADDRCPT|SMFIF_DELRCPT,
NULL,
NULL,
mlfi_envfrom,
mlfi_envrcpt,
mlfi_header,
NULL,
NULL,
mlfi_eom,
NULL,
mlfi_close
};
int main(int argc, char *argv[])
{
smfi_setconn("inet:999@localhost");
if (smfi_register(fwd_mail_filter) == MI_FAILURE) {
fprintf(stderr,"smfi_register_failed\n");
exit(1);
}
return smfi_main();
}
Тупой дебаг на уровне printf() в самых разных местах показал, что всё
отрабатывает нормально, нужный e-mail находится, глобальная переменная fwd
выставляется как надо, но вот функция mlfi_eom, где собственно и должны
проводиться все манипуляции с адресами получателей, вообще не выполняется.
Подскажите как правильно надо проводить подмену адреса получателя и возможно ли
это вообще.
Max.
--- GoldED+/BSD 1.1.5
* Origin: *** (2:5054/1.20)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.unix/270341410cab.html, оценка из 5, голосов 10
|