У меня есть сервер с exim4 и smarthost перед ним, использование smarthost обязательно, университет закрыл порт 25. Однако на IPv6 этот порт открыт. Поэтому, когда у принимающего сервера есть IPv6-адрес, я могу отправить его напрямую.
Итак, мой вопрос: как я могу позволить exim'у принимать решение о маршрутизации на основе IP-адреса или сначала попробовать IPv6, а если это не сработает, используйте smarthost.
Самый простой способ сделать это - поставить ignore_target_hosts
директива на SMTP-маршрутизаторе, так что exim переходит через этот маршрутизатор, если он находит IPv4-адрес в записи MX места назначения. Что-то вроде:
ignore_target_hosts = 0.0.0.0/0
Тогда вам просто понадобится маршрутизатор ниже, указывающий на транспорт smarthost. Это должно означать, что для любого пункта назначения с записью MX IPv6 должна быть предпринята попытка прямой доставки, а для любого пункта назначения с IPv4 «проваливается» к следующему маршрутизатору, который попытается выполнить доставку на смарт-хост.