The OpenNET Project / Index page

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



"exim bounce"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Открытые системы на сервере (Почта / Linux)
Изначальное сообщение [ Отслеживать ]

"exim bounce"  +/
Сообщение от fevil (ok), 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} }"

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

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения [Сортировка по ответам | RSS]

1. Сообщение от xm (ok), 29-Апр-20, 21:23   +1 +/
Ну, во-первых, у вас ошибка в первом же правиле - именованный список без начального +
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #2

2. Сообщение от fevil (ok), 29-Апр-20, 22:05   +/
> Ну, во-первых, у вас ошибка в первом же правиле - именованный список
> без начального +

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1 Ответы: #3

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #2 Ответы: #5

4. Сообщение от fevil (ok), 30-Апр-20, 01:18   +/
Провел небольшой эксперимент:

удалил блок:
> 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 а посмотреть его в базе перед приемкой?

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #7

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #3 Ответы: #6

6. Сообщение от xm (ok), 30-Апр-20, 19:26   +/
Эта проверка эмулирует доставку через набор роутеров Exim (что хорошо видно в отладке). Т.е. если она проходит, то один из роутеров срабатывает.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #5

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

verify = recipient

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #4

8. Сообщение от Аноним (8), 12-Май-20, 22:43   +/
Как тогда узнать дошло письмо получателю или нет? Человек может опечататься и будет думать что письмо до адресата дошло.
Лучше выявлять и блокировать тех кто постоянного шлёт на несуществующие адреса.
Ответить | Правка | Наверх | Cообщить модератору


Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




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

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