2008-08-28 9 views
15

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

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

  1. Client (Gmail пользователей с помощью Thunderbird) на сервер (Gmail)
  2. Первый сервер (Gmail) на второй сервер (Hotmail)
  3. второй сервер (Hotmail) для второго клиента (Hotmail пользователь, используя OS X Mail)

Как я понимаю, шаг один использует 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, он/она получает сообщение ... правильно?

Еще раз спасибо (особенно ЛУ-ян),

Jason

ответ

18

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

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

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

Jason - ответить на ваш РАЗВЕЙТЕ ...

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

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

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

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).

5

Вы ищете Mail Transfer Agent, Wikipedia имеет a nice article по этой теме.

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

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

1

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

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

3

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

2

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

1

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

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

4

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

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

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

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

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