Я пытаюсь подробно разобраться, как работает электронная почта. Я нашел довольно хороший сайт (Объяснение записи MX в DNS с примерами конфигураций) описывающий тему. К сожалению, у меня есть некоторая путаница. Вот что сайт говорит об отправке электронного письма:
Как только ваш SMTP-сервер найдет SMTP-сервер получателя, используя поиск MX-записи, он перешлет сообщение на этот сервер (через Интернет). Затем SMTP-сервер перешлет сообщение на POP- или IMAP-сервер, отвечающий за домен...
Допустим, я хочу отправить электронное письмо с [email protected]
на [email protected]
. Согласно приведенному выше утверждению мой MUA
( mutt
в моем случае) отправляет сообщение на мой SMTP-сервер (который является smtp.mail.yahoo.com)
. Затем smtp.mail.yahoo.com
используйте DNS-поиск, чтобы получить MX-запись для gmail.com
домена. Как я проверил, MX-запись gmail.com
имеет gmail-smtp-in.l.google.com
IP: 173.194.77.26
. С другой стороны, адрес SMTP-сервера gmail ( smtp.gmail.com
) такой: 173.194.77.108
. И вот в чем путаница.
- Разве два вышеуказанных адреса не должны быть одинаковыми (как я понял из процитированного отрывка)? Почему поиск MX возвращает ссылку на другую машину, чем та, которая
smtp.gmail.com
есть? - Означает ли это, что ,
smtp.mail.yahoo.com
пересылает сообщениеgmail-smtp-in.l.google.com
и если да, то чтоsmtp.gmail.com
нужно сделать в этом процессе? - Где
marry
размещен почтовый ящик? Наgmail-smtp-in.l.google.com
,smtp.gmail.com
или может бытьimap.gmail.com
serer?
решение1
Входящие и исходящие SMTP-сообщения для провайдера могут обрабатываться разными серверами.
Входящий SMTP (или часто называемый MX) обрабатывает входящую почту для пользователей домена. Эти серверы будут настроены на прием только почты, предназначенной для их собственного домена (например, gmail.com).
Исходящий SMTP обрабатывает почту для пользователей домена, которые пытаются отправить почту в остальной мир. Эти серверы будут настроены на разрешение почты, предназначенной для всех, но только если она отправлена их собственными клиентами. Часто это обеспечивается брандмауэрами на основе IP-адреса или SMTP AUTH (имя пользователя и пароль).
Если вы отправите письмо с yahoo.com на google.com, smtp.gmail.com ничего не сделает. Однако, если вы отправите письмо с google.com на yahoo.com, сервер smtp.google.com примет письмо от MUA и отправит его на MX-сервер yahoo.com.
Что касается вашего последнего вопроса, почтовый ящик Marry, вероятно, будет размещен на каком-то сервере далеко в облаке Google. Когда front-end (один из серверов, который обрабатывает imap.google.com) получает запрос на обслуживание файлов из почтового ящика Marry, он ищет ссылку на почтовый ящик (в какой-то базе данных) и извлекает информацию с удаленной машины.
Думать о крупных почтовых настройках (вроде yahoo.com и gmail.com) — это, возможно, не лучший способ начать понимать почту. Попробуйте понять, как ваш интернет-провайдер справится с этим.