SMTP-сервер правильная маршрутизация электронной почты - PullRequest
0 голосов
/ 25 января 2019

Я сейчас пытаюсь внедрить SMTP-сервер, и у меня есть вопрос, касающийся маршрутизации ... Представьте себе, клиент (foo@bar.com) отправляет письмо по адресу foo1@bar1.com, foo2@bar2.com и foo3@bar3.com. Что происходит, когда SMTP-сервер видит сообщение? Теперь я не уверен, что следующая последовательность верна:

  1. SMTP-сервер будет помещать почту в почтовый ящик foo@bar.com
  2. Для каждого получателя (кроме foo@bar.com) в конверте SMTP-сервер будет выполнять:
    1. Получить запись MX
    2. Подключение к SMTP-серверу, определенному записью MX
    3. Отправить команду HELO / EHLO
    4. Отправить команду MAIL FROM (foo@bar.com)
    5. Отправить команду RCPT TO (например, foo1@bar1.com)
    6. Отправить команду DATA
    7. Отправить команду QUIT

Являются ли эти шаги правильными? Для меня имеет смысл, что SMTP отправителя обрабатывает все сообщения, но я нашел несколько страниц (например, https://www.msxfaq.de/internet/envelope.htm), где почтовый сервер только перенаправляет сообщение на следующий SMTP-сервер, а каждый SMTP-сервер удаляет один получатель из списка rcpt-to конверта, например,

enter image description here

Итак, что правильно ...?

  1. SMTP отправителя обрабатывает всю маршрутизацию
  2. SMTP отправителя удаляет одного получателя (в данном случае foo@bar.com), а затем пересылает сообщение на следующий SMTP-сервер

1 Ответ

0 голосов
/ 31 мая 2019

Шаги, которые вы перечислили, в основном правильные.

Сложность возникает, когда вы пишете письмо и пытаетесь отправить его на множество разных доменов, например, steve@apple.com, woz@apple.com и bill@microsoft.com.

В этом случае сервер должен выполнить поиск MX на каждом из этих доменов и разделить электронную почту. Стив и Воз находятся в одном домене, поэтому сервер может отправить электронное письмо с этими двумя получателями в запись MX для apple.com. Сервер должен открыть отдельное соединение с записью MX для microsoft.com и попытаться отправить электронное письмо Биллу через это соединение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...