Что вам не хватает, так это того, что nmap
не является средством проверки открытых портов.
С одной стороны, это ужасная идея - выполнить полное сканирование портов, чтобы посмотреть, открыт ли один единственный порт. telnet
работает отлично:
shadur@huginn:~$ telnet gmail-smtp-in.l.google.com. 25
Trying 2a00:1450:4013:c01::1b...
Connected to gmail-smtp-in.l.google.com.
Escape character is '^]'.
Марк дает одно очень хорошее возможное объяснение в комментарии к вашему вопросу; другая возможность состоит в том, что почтовый сервер Google, который почти наверняка подвергается почти постоянным низкопробным атакам со стороны оппортунистов, замечает попытку сканирования портов и быстро блокирует ваш IP-адрес в течение следующих пяти минут, прежде чем вы доберетесь до порта 22, не говоря уже о 25.
Тем не менее, полная схема потока немного больше:
- Вы составляете сообщение в своем почтовом клиенте, каким бы оно ни было (называемое почтовым агентом пользователя или MUA).
- MUA проверяет свои настройки и поле «Кому:», чтобы увидеть, как это должно быть обработано, а затем вызывает соответствующий сервер исходящей почты (MTA - Mail Transfer Agent), который в своей конфигурации сообщает, что ему поручено это обработать. В системах Unix это обычно
localhost
; Системы Windows, как правило, настраивают сервер исходящей почты своего провайдера.
- MTA, который получает сообщение от MUA, проверяет его конфигурацию и сопоставляет его с источником, адресатом (и, возможно, телом) сообщения, чтобы решить, что с ним делать. В зависимости от вышеупомянутого это может варьироваться от прямого отклонения до сканирования на наличие вирусов / спама / и т.д. Или отправки его дальше.
- Если адаптер MTA определит, что сообщение должно быть принято, но домен получателя отсутствует в списке доменов, которые должны обрабатываться локально, он попытается передать сообщение либо в MX домена получателя, либо в настроенный так называемый "промежуточный узел". ». (Большинство систем Unix, упомянутых в # 3, имеют свой SMTP-сервер localhost, настроенный на использование почтового сервера своего провайдера для исходящей почты). Затем "умный хост" подхватит это на шаге 3.
- Как только MTA в ссылке решит отправить его непосредственно получателю, он сначала попытается отправить его на основной MX. Если этот MX не отвечает, он будет пытаться выполнить остальные серверы MX в порядке убывания приоритета до тех пор, пока не получит явный ответ принять или отклонить от одного или пока не закончатся записи MX для попытки, в зависимости от того, что произойдет раньше.
- Как только адаптер MTA в записях MX домена получателя получает сообщение, он также сверяется со своей конфигурацией и сопоставляет его с заголовками и содержимым сообщения, чтобы определить, что с ним делать, с тем же набором опций, что и в пункте 3, но с добавлена опция "доставлять конечному пользователю" через настроенный агент доставки почты (MDA).
- Когда MDA получает сообщение, он также консультируется со своей конфигурацией, чтобы решить, как следует обрабатывать сообщение и в какой почтовый ящик (если он есть) следует поместить сообщение.