Мне доставляют почту на почтовый сервер Postfix.
else%2bsomething@domain.com
(Это в основном закодированная по URL-адресу версия else+something@domain.com
, который должен соответствовать RFC.)NOQUEUE: reject: RCPT from randostring.outbound.protection.outlook.com[...]: 454 4.7.1 <else%2bsomething@domain.com>: Relay access denied; from=<john.doe@live.com> to=<else%2bsomething@domain.com> proto=ESMTP helo=<morerando.outbound.protection.outlook.com>
generic_checks: name=defer_unauth_destination status=2
, что, как я полагаю, является проблемой.$virtual_alias_domains
, который не запрашивается во время создания сообщения журнала выше. Я думаю, что это может быть кешировано какое-то время, но здесь я могу ошибаться.Что я пробовал:
allow_percent_hack
чтобы увидеть, является ли это причиной, меня отвергают. Ни для одного из этих параметров ничего не меняется.recipient_delimiter
на '%', который ничего не изменил.Мой вопрос: как я могу заставить postfix доставить это письмо? Мне действительно не нужны постоянные решения, так как я считаю это крайним случаем.
Бонусные баллы, если вы можете объяснить мне, почему это письмо не было получено, потому что я действительно хочу знать, почему это происходит. :)
Редактировать # 1:
Я обнаружил разницу в флагах рабочего и нерабочего сообщения.
Flag: 1024
Flag: 1026
Посмотрев на разные места в исходном коде (Определение флага: https://github.com/vdukhovni/postfix/blob/bfff4380a3b6fac2513c73531ee3a79212c08660/postfix/src/global/resolve_clnt.h#L36-L37 и Использование флага: https://github.com/vdukhovni/postfix/blob/ed3f86da7c3e15cf1ec57241c1f6036d82b790da/postfix/src/trivial-rewrite/resolve.c#L467-L468), Я узнал, что как только появится другой @
, !
, или %
в адресе электронной почты он устанавливает routed
flag, который затем обрабатывается позже.
Я еще не выяснил, как я могу
а) предотвратить это
или
б) Взломайте что-нибудь вместе, чтобы фактически направить его «обратно» на мой сервер.
Комбинация этих двух настроек делает свое дело:
allow_percent_hack = no
allow_untrusted_routing = yes
Но будь осторожен! В Документация Postfix предупреждает о возможности "неприятной лазейки с открытым реле" при отмене настройки по умолчанию allow_untrusted_routing
.
Без этих настроек Postfix отклоняет такой тип адреса назначения, потому что настройка по умолчанию allow_percent_hack = yes
сообщает Postfix о необходимости поддержки устаревшего механизма маршрутизации от источника, известного как «так называемый% -hack», как описано в Раздел 7 RFC 1711, а настройка по умолчанию allow_untrusted_routing = no
сообщает Postfix отклонить исходную маршрутизацию от ненадежных клиентов.
Другими словами, Postfix по умолчанию отвергает такой тип назначения, потому что считает else%2bsomething@domain.com
означает "доставить else@2bsomething
посредством domain.com
", но это разрешено делать только доверенным клиентам из-за спамеров.