RFC 821 указывает, что MAIL
глагол можно дать <forward-path>
аргумент формы "@ONE,@TWO:JOE@THREE"
для обозначения промежуточных хостов маршрутизации (@ONE,@TWO
) и конечный получатель электронного письма (JOE@THREE
). См. 3.6, Ретрансляция: http://tools.ietf.org/html/rfc821
RFC 2821 диктует, что если SMTP-сервер отправляется, прямой путь @ONE,@TWO:JOE@THREE
что письмо может быть направлено напрямую JOE@THREE
- обход промежуточных хостов - путем поиска DNS MX на THREE
. См. 3.7, Ретрансляция: http://tools.ietf.org/html/rfc2821
Я считаю, что правильно понимаю RFC 2821: поиск DNS MX просто вернет IP-адрес SMTP-сервера для домена (например, @THREE
Вот). Это правильно? Однако я совершенно не понимаю, как электронная почта будет маршрутизироваться в соответствии с RFC 821. Эта спецификация была написана до того, как существовал DNS, поэтому я предполагаю, что любые имена хостов были указаны в файле hosts.txt? Как маршрутизировались электронные письма с прямым путем?
Так это вопрос истории? :-)
До появления DNS имена хостов разрешались, как вы говорите, с помощью HOSTS.TXT или вообще с помощью других средств разрешения имен хостов, доступных локально (/etc/hosts
, возможно NIS, что угодно). Но это только в том случае, если конфигурация локального агента передачи почты еще не содержала явных инструкций по маршрутизации. А учитывая, что большая часть почты в то время доставлялась через UUCP, большинство агентов пересылки почты в основном работали бы на основе таких явных инструкций (запрашиваемых через "mailertable" и другие поисковые запросы в базе данных с ключом). Если бы у вас был хост UUCP с хорошим подключением, у вас была бы большая база данных маршрутизации, которая сопоставляет каждое место назначения с рассчитанным пошаговым путем через сеть UUCP (путь взрыва). Если бы вы были небольшим конечным сайтом, у вас, вероятно, был бы просто маршрут по умолчанию к восходящему хосту UUCP.
Ничто из этого не имеет ничего общего с исходными маршрутами, о которых вы спрашивали. Если бы у вас был пункт назначения JOE@THREE
тогда вы бы посмотрели вверх THREE
описанным мной способом (т.е., скорее всего, через вашу базу данных "mailertable"). Если бы у вас вместо этого было @ONE,@TWO:JOE@THREE
тогда вы бы посмотрели вверх ONE
.
Сегодня, конечно, ни один MTA в Интернете не будет уважать исходный маршрут. Если современный MTA вообще принимает синтаксис (а может и нет), он проигнорирует исходный маршрут и сразу перейдет к поиску THREE
. Считается небезопасным доверять исходным маршрутам, и MTA больше не являются открытыми ретрансляторами по умолчанию.