Какие протоколы и серверы участвуют в отправке электронной почты и какие шаги?

В течение последних нескольких недель я пытался узнать, как работает электронная почта. Я понимаю, что процесс клиента, получающего почту с сервера, с помощью POP довольно хорошо. Я также понимаю, как клиентский компьютер может использовать SMTP, чтобы попросить SMTP-сервер отправить сообщение. Тем не менее, я все еще что-то пропустил...

Как я понимаю, исходящая почта должна совершить три поездки:

  • Клиент (пользователь Gmail с использованием Thunderbird) на сервер (Gmail)
  • Первый сервер (Gmail) для второго сервера (Hotmail)
  • Второй сервер (Hotmail) для второго клиента (пользователь Hotmail с использованием почты OS X)

Как я понимаю, первый шаг использует SMTP для взаимодействия клиента. Клиент как-то аутентифицируется (скажем, с USER и PASS), а затем отправляет сообщение на сервер gmail.

Однако я не понимаю, как сервер gmail передает сообщение на сервер hotmail.

Для третьего шага, я уверен, сервер hotmail использует POP для отправки сообщения клиенту hotmail (снова используя проверку подлинности).

Итак, большой вопрос: <сильного > когда я нажимаю отправить сообщение посылает свое сообщение на мою GMAIL сервер, как делает мой Gmail сервер вперед сообщение, скажем, на сервер Hotmail так что мой друг может Получать его

Большое вам спасибо!

~ Джейсон


Спасибо, это было полезно до сих пор.

Как я понимаю, первый клиент отправляет сообщение на первый сервер с использованием SMTP, часто на адрес, например smtp.mail.SOMESERVER.com, на порт 25 (обычно).

Затем SOMESERVER снова использует SMTP, чтобы отправить сообщение на RECEIVESERVER.com на порт 25 (не smtp.mail.RECEIVESERVER.com или что-нибудь интересное).

Затем, когда получатель запрашивает RECEIVESERVER для своей почты, используя POP, он/она получает сообщение... правильно?

Еще раз спасибо (особенно dr-jan),

Джейсон

Ответы

Ответ 1

SMTP-сервер в Gmail (который принял сообщение от Thunderbird) направит сообщение конечному получателю.

Это делает это, используя DNS, чтобы найти запись MX (почтовый обменник) для части имени домена адресата назначения (hotmail.com в этом примере). DNS-сервер вернет IP-адрес, на который должно быть отправлено сообщение. Сервер на целевом IP-адресе, мы надеемся, будет запускать SMTP (на стандартном порту 25), чтобы он мог принимать входящие сообщения.

Как только сообщение было получено сервером hotmail, оно сохраняется до тех пор, пока соответствующий пользователь не войдет в систему и не получит их сообщения, используя POP (или IMAP).

Джейсон - ответить на ваш вопрос...

Затем SOMESERVER снова использует SMTP, чтобы отправить сообщение на RECEIVESERVER.com на порт 25 (не smtp.mail.RECEIVESERVER.com или что-нибудь интересное).

Правильно - доменное имя для отправки принимается как все после "@" на адрес электронной почты получателя. Часто RECEIVESERVER.com является псевдонимом для чего-то более конкретного, скажите что-то вроде входящего .RECEIVESERVER.com(или, действительно, smtp.mail.RECEIVESERVER.com).

Вы можете использовать nslookup для запроса локальных DNS-серверов (это работает в Linux и в окне Windows cmd):

nslookup
> set type=mx
> stackoverflow.com
Server:         158.155.25.16
Address:        158.155.25.16#53

Non-authoritative answer:
stackoverflow.com       mail exchanger = 10 aspmx.l.google.com.
stackoverflow.com       mail exchanger = 20 alt1.aspmx.l.google.com.
stackoverflow.com       mail exchanger = 30 alt2.aspmx.l.google.com.
stackoverflow.com       mail exchanger = 40 aspmx2.googlemail.com.
stackoverflow.com       mail exchanger = 50 aspmx3.googlemail.com.

Authoritative answers can be found from:
aspmx.l.google.com      internet address = 64.233.183.114
aspmx.l.google.com      internet address = 64.233.183.27
>                  

Это показывает нам, что письмо кому-либо из stackoverflow.com должно быть отправлено на один из серверов gmail, показанных выше.

В упомянутой статье в Википедии (http://en.wikipedia.org/wiki/Mx_record) обсуждаются номера приоритетов, показанные выше (10, 20,..., 50).

Ответ 2

Вы ищете агента передачи почты, Wikipedia хорошая статья по теме.

В службах обработки сообщений Интернета (MHS) агент передачи сообщений или агент передачи почты (MTA) или почтовое реле - это программное обеспечение, которое передает электронные почтовые сообщения с одного компьютера на другой с использованием архитектуры приложения клиент-сервер. MTA реализует как клиентские (отправляющие), так и серверные (получающие) части протокола Simple Mail Transfer Protocol.

Термины почтового сервера, почтового обменника и хоста MX также могут ссылаться на компьютер, выполняющий функцию MTA. Система доменных имен (DNS) связывает почтовый сервер с доменом с записями ресурсов почтового обменника (MX), содержащим имя домена хоста, предоставляющего услуги MTA.

Ответ 3

Вам также может быть интересно узнать, почему ссылка GMail на HotMail использует SMTP, как и ваш клиент Thunderbird. Другими словами, поскольку ваш клиент может отправлять электронную почту через SMTP, и он может использовать DNS для получения записи MX для hotmail.com, почему он просто не отправляет ее прямо, пропуская gmail.com вообще?

Есть несколько причин, некоторые исторические и некоторые для безопасности. В исходном вопросе предполагалось, что ваш клиент Thunderbird входит в систему с именем пользователя и паролем. Это часто бывает не так. На SMTP фактически не требуется логин для отправки почты. И SMTP не может сказать, кто действительно отправляет почту. Таким образом, спам родился!

Есть, к сожалению, еще много SMTP-серверов, которые позволяют всем и каждому подключаться и отправлять почту, надежно следя за тем, что отправитель является тем, кем они себя называют. Эти серверы называются "открытыми ретрансляторами" и регулярно отображаются в черном списке более умными администраторами других почтовых серверов из-за спама, который они генерируют.

Ответственные администраторы SMTP-сервера настраивают свой сервер для приема почты для доставки только в особых случаях 1) почта поступает из "собственной" сети или 2) почта отправляется в "свою" сеть или 3 ) пользователь представляет учетные данные, которые идентифицируют его как доверенного отправителя. Случай №1, вероятно, происходит, когда вы отправляете почту с работы; ваш компьютер находится в доверенной сети, поэтому вы можете отправлять почту кому-либо. Многим корпоративным почтовым серверам по-прежнему не требуется аутентификация, поэтому вы можете олицетворять любого в своем офисе. Весело! Случай №2 - это когда кто-то отправляет вам почту. И случай №3, вероятно, происходит с вашим примером GMail. Вы не из надежной сети, а просто из Интернета со спамерами. Но, используя пароль, вы можете доказать GMail, что вы являетесь тем, кем вы говорите.

Исторический аспект заключается в том, что в прежние времена связь между gmail и hotmail, вероятно, была прерывистой. Путем очередности вашей почты на локальном сервере вы могли бы вымыть руки, зная, что при установлении ссылки локальный сервер может передавать ваши сообщения на удаленный сервер, который будет хранить это сообщение до тех пор, пока агент получателя не подберет его.

Ответ 4

Первый сервер будет искать DNS для записи MX сервера Hotmail. MX - специальная запись, которая определяет почтовый сервер для определенного домена. Зная IP-адрес сервера Hotmail, сервер GMail отправит сообщение с использованием протокола SMTP и будет ждать ответа. Если сервер Hotmail опустится, сервер GMail попытается повторно отправить сообщение (это будет зависеть от конфигурации программного обеспечения сервера). Если процесс завершается нормально, тогда нормально, если нет, сервер GMail уведомит вас о том, что он не смог доставить сообщение.

Ответ 5

Если вы действительно хотите знать, как работает электронная почта, вы можете прочитать SMTP RFC или POP3 RFC.

Ответ 6

Шаг 2 - 3 (то есть Gmail для Hotmail) обычно происходит через SMTP (или ESMTP - расширенный SMTP).

Hotmail ничего не отправляет клиенту через POP3. Здесь важно понять некоторые нюансы. Клиент связывается с Hotmail через POP3 и запрашивает его почту. (то есть клиент инициирует обсуждение).

Ответ 7

Все электронные письма передаются с использованием SMTP (или ESMTP).
Важно понять, что когда вы отправляете сообщение на адрес [email protected], это сообщение не является его персональным компьютером. Назначение - это некоторая папка "Входящие" на сервере hotmail.com.
После того, как сообщение поступит в пункт назначения. Пользователь может проверить, есть ли у него новые сообщения в своей учетной записи на сервере hotmail и получить их с помощью POP3

Также можно отправить сообщение без использования сервера gmail, отправив его прямо с вашего ПК на hotmail с помощью SMTP.