The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
exim bounce, !*! fevil, 29-Апр-20, 21:11  [смотреть все]
Добрый день.

Есть exim и проблема с bounce. Хочу запретить слать боунс если письмо пришло на не существующий адрес. Для этого добавил в начало acl в конфиг:

______________________________________
begin acl
acl_check_rcpt:
deny   domains = local_domains
       message = Can't verify recipient
       !verify  = recipient
______________________________________

exim этот блок игнорирует и срабатывает роутер:

rcpt_check_router:
    driver = redirect
    allow_fail
    no_verify
    data = "${if eq{}{${lookup mysql{ SQLUSR }}}{:fail: unknown local user}{$local_part@$domain} }"

при этом отправителю приходит письмо о невозможности доставки от mail-daemon. как заблокировать отправку этого сообщения а отправителю ответить 550?


заменил :fail: на :blackhole: теперь все письма принимаются и нет боунса. но мне видится некорректным это.
  
rcpt_check_router:
    driver = redirect
    allow_fail
    no_verify
    data = "${if eq{}{${lookup mysql{ SQLUSR }}}{:blackhole: unknown local user}{$local_part@$domain} }"

хочется все же делать отлуп без оправки письма отправителю. укажите на путь истинный.

  • exim bounce, !*! xm, 21:23 , 29-Апр-20 (1) +1
    Ну, во-первых, у вас ошибка в первом же правиле - именованный список без начального +
    • exim bounce, !*! fevil, 22:05 , 29-Апр-20 (2)
      > Ну, во-первых, у вас ошибка в первом же правиле - именованный список
      > без начального +

      Спасибо.Верное замечание, это во время тестирования потерял, но сути дела не меняет этот блок по прежнему игнорируется и уходит на router. Такое ощущение что !verify  = recipient всегда верное.

      • exim bounce, !*! xm, 00:41 , 30-Апр-20 (3) +1
        >> Ну, во-первых, у вас ошибка в первом же правиле - именованный список
        >> без начального +
        > Спасибо.Верное замечание, это во время тестирования потерял, но сути дела не меняет
        > этот блок по прежнему игнорируется и уходит на router. Такое ощущение
        > что !verify  = recipient всегда верное.

        Ну так в Exim есть мощный режим отладки. Запускайте и смотрите что у вас там (не)срабатывает и почему.

        # service exim stop
        # exim -bd -q15m -d+all

        • exim bounce, !*! fevil, 01:23 , 30-Апр-20 (5)
          >>> Ну, во-первых, у вас ошибка в первом же правиле - именованный список
          >>> без начального +
          >> Спасибо.Верное замечание, это во время тестирования потерял, но сути дела не меняет
          >> этот блок по прежнему игнорируется и уходит на router. Такое ощущение
          >> что !verify  = recipient всегда верное.
          > Ну так в Exim есть мощный режим отладки. Запускайте и смотрите что
          > у вас там (не)срабатывает и почему.
          > # service exim stop
          > # exim -bd -q15m -d+all

          в отладке и смотрю что
          > !verify  = recipient

          всегда проходит. Не зависимо есть пользователь или нет в системе всегда одинаково.

          • exim bounce, !*! xm, 19:26 , 30-Апр-20 (6)
            Эта проверка эмулирует доставку через набор роутеров Exim (что хорошо видно в отладке). Т.е. если она проходит, то один из роутеров срабатывает.

            > в отладке и смотрю что
            >> !verify  = recipient
            >  всегда проходит. Не зависимо есть пользователь или нет в системе всегда
            > одинаково.

  • exim bounce, !*! fevil, 01:18 , 30-Апр-20 (4)
    Провел небольшой эксперимент:

    удалил блок:
    > rcpt_check_router:
    >     driver = redirect
    >     allow_fail
    >     no_verify
    >     data = "${if eq{}{${lookup mysql{ SQLUSR }}}{:fail: unknown
    > local user}{$local_part@$domain} }"

    после этого в логе посыпались ошибки от LDA  что нет пользователя получателя и он не может ему письмо доставить.

    вернул блок немного изменив его:

    rcpt_check_router:
        driver = redirect
        allow_fail = yes
        data = :fail: Unknown local user
        no_more

    в итоге получил в логе smtp :
    rejected RCPT : Unknown local user

    а отправителю пришел баунс от сервера отправления со значением:
    SMTP error from remote mail server after RCPT TO:<nonuser@domain.example>:
    550 Can't verify recipient


    Взятый из блока:
    >begin acl
    >acl_check_rcpt:
    >deny   domains = +local_domains
    >       message = Can't verify recipient
    >       !verify  = recipient

    Подскажите я правильно понимаю что письмо приходит на сервер exim пытается отдать его на доставку LDA, тот говорит что нет такого пользователя, и тогда срабатывает роутер по обработке. Если это верно то как все же правильно проверить пользователя не отправляя на LDA а посмотреть его в базе перед приемкой?

    • exim bounce, !*! xm, 21:40 , 11-Май-20 (7)
      Судя по ошибке похоже на то.
      Проверка получателя в ACL RCPT делается через

      verify = recipient

      >[оверквотинг удален]
      >>begin acl
      >>acl_check_rcpt:
      >>deny   domains = +local_domains
      >>       message = Can't verify recipient
      >>       !verify  = recipient
      > Подскажите я правильно понимаю что письмо приходит на сервер exim пытается отдать
      > его на доставку LDA, тот говорит что нет такого пользователя, и
      > тогда срабатывает роутер по обработке. Если это верно то как все
      > же правильно проверить пользователя не отправляя на LDA а посмотреть его
      > в базе перед приемкой?

  • exim bounce, !*! Аноним, 22:43 , 12-Май-20 (8)
    Как тогда узнать дошло письмо получателю или нет? Человек может опечататься и будет думать что письмо до адресата дошло.
    Лучше выявлять и блокировать тех кто постоянного шлёт на несуществующие адреса.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру