Есть внутренний домен mylocal.ru и внешний myexternal.ru. Настроен Exim по большей части как в статье на этом сайте.
Почта из вне на Exim идет через smtp relay hoster' a.
В local_domains указаны оба домена: mylocal.ru и внешний myexternal.ru.
У пользователей, у которых есть и "внутренний" и "внешний" почтовые адреса, они прописаны в соответствующих аттрибутах: mail - внутренний (с доменом mylocal) и proxyaddress (с доменом myexternal) .
Некоторые "термины" для данного вопроса:
- мои домены - домены mylocal.ru или myexternal.ru;
- локальный пользователь - пользователь из моих доменов;
- не локальный пользователь - пользователь, не из моих доменов;
- не существующий локальный пользователь - пользователь, которого нет в моих доменах (может потом появится) , но доменная часть его адреса содержит адреса моих доменов;
- пустой локальный пользователь - пользователь с пустой local_part, но из моих доменов (частный случай несуществующего локального пользователя - у меня такого точно нет) ;
- пустой отправитель - отправитель, отображающийся в сообщениях и log' ах без локальной и доменной части (еще отображается как <>, скорее всего mailer-daemon) ;
- статья - статья по настройке Exim +LDAP на данном сайте.
Есть маршрутизатор для обработки "внутренних писем" , немного изменен по сравнению со статьей:
Код: Выделить всё
system_aliases:
driver = redirect
allow_fail
allow_defer
domains = +local_domains
data = ${lookup ldapm{LDAP_AUTH ldap:///dc=my,dc=net?mail?sub?(&(accountStatus=active)(|(mail=${quote_ldap:$local_part}${quote_ldap:@}${quote_ldap:$domain})(proxyAddresses=SMTP:${quote_ldap:$local_part}${quote_ldap:@}${quote_ldap:$domain})))}{$value} {:fail: "You as $sender_address sent e-mail to Unknown user $local_part@$domain, be accurate !}}
redirect_router = ldapuser
no_more
В последнее время от hoster relay начали идти (не часто, но есть) , письма от пустого отправителя (без указания его принадлежности к какому - либо домену) на не существующий локальный пользователя.
Сейчас не будем рассуждать / дискутировать после чего или из - за чего или почему их присылает или "генерирует" сервер hoster' a.
Так, как письмо с локальный пользователем в качестве получателя - читай с доменом из local_domains, оно обрабатывается маршрутизатором system_aliases.
Там, при обработке запроса в data не находится такой получатель - пустая local_part, выдается fail и сообщение: You as (здесь пусто) sent e-mail to Unknown user @myexternal.ru, be accurate !
Затем генерируется рикошет от пустого отправителя (уже наверное "местного" ) , на admin@mylocal.ru (именно он указан в параметре freeze_tell) , c этим текстом, "маршрутизируется" accept маршрутизатором и отправляется на admin@mylocal.ru.
Ну и приходит на этот ящик как frozen_message с тем текстом.
При получении письма, на несущестсвующий локальный адрес от несуществующего локального пользователя, генерируется рикошет с этим сообщением для этого несуществующего локального адресата, потом Frozen (delivery error message) и все - забыли.
При получении письма, на несущестсвующий локальный адрес от несуществующего не локального пользователя, генерируется рикошет с этим сообщением для этого не локального адресата и уходит через "внешний" транспорт во вне ему и все - забыли.
В связи с этим всем 3 вопроса:
1. Нормально ли то, что сообщение с пустым отправителем, с пустым локальным пользователем в качестве получателя, в system_alias маршрутизаторе почему - то "превращается" в рикошет для admin@mylocal.ru (указанный в freeze_tell) , затем помечается как frozen сообщение и отправляется на admin@mylocal.ru;
2. почему сообщение на пустого локального пользователя, "не останавливается" на маршрутизаторе system_alias (стоит no_more) , как сообщения, указанные выше;
3. как при или после "генерации" рикошета с сообщением о несуществовании локального пользователя, но до отправки, несуществующему, в том числе пустому, но локальному пользователю (другому) , сделать проверку такого пользователя и если его нет, аннулировать / удалить / не отправлять "ему" такое сообщение ?
В догонку log:
Код: Выделить всё
Delay 25s for [hoster smtp IP] with HELO=mail-relay-05.hostername.org. Mail from to @myexternal.spb.ru
no host name found for IP address hoster smtp IP
Delay 25s for [hoster smtp IP] with HELO=mail-relay-05.hostername.org. Mail from to @myexternal.spb.ru
1SA6Ol-0003v5-SI <= <> H=(mail-relay-05.hostername.org) [hoster smtp IP] I=[my smtp IP]:25 P=esmtp S=3071 id=20120320212006.6C89F3C02D@mail-relay-05.hostername.org from <> for ""@myexternal.spb.ru
1SA6Ol-0003v5-SI ** @myexternal.spb.ru <""@myexternal.spb.ru> R=system_aliases: "You as sent e-mail to Unknown user @myexternal.spb.ru, be accurate !"
1SA6Ol-0003vC-T2 <= <> R=1SA6Ol-0003v5-SI U=mailnull P=local S=852 from <> for admin@mylocal.spb.ru
1SA6Ol-0003v5-SI Frozen (delivery error message)
1SA6Ol-0003vC-T2 => admin <admin@mylocal.spb.ru> R=ldapuser T=dovecot_delivery
1SA6Ol-0003vC-T2 Completed
1SA6P6-0003vA-NG <= <> H=(mail-relay-05.hostername.org) [hoster smtp IP] I=[my smtp IP]:25 P=esmtp S=3175 id=20120320212027.313423C0BC@mail-relay-05.hostername.org from <> for ""@myexternal.spb.ru
1SA6P6-0003vA-NG ** @myexternal.spb.ru <""@myexternal.spb.ru> R=system_aliases: "You as sent e-mail to Unknown user @myexternal.spb.ru, be accurate !"
1SA6P6-0003vI-Ng <= <> R=1SA6P6-0003vA-NG U=mailnull P=local S=852 from <> for admin@mylocal.spb.ru
1SA6P6-0003vA-NG Frozen (delivery error message)
1SA6P6-0003vI-Ng => admin <admin@mylocal.spb.ru> R=ldapuser T=dovecot_delivery
1SA6P6-0003vI-Ng Completed