SMTP: удаленный клиент не отвечает на 220 - PullRequest
0 голосов
/ 04 октября 2018

Недавно я экспериментировал с простым сценарием, который прослушивает порт 25, получает и регистрирует любые входящие электронные письма.

Это очень примитивный сценарий, и он вообще не реализует протокол SMTP.,Он просто выдает готовые ответы и работает примерно так:

  1. Ожидание входящего сокета.
  2. Отправка "220 example.com ESMTP Postfix".
  3. Получите одну строку, как правило, как «EHLO other.com».
  4. Отправьте «250 example.com, я рад встретиться с вами».
  5. Получите строки до «ДАННЫЕ», ответьтес "250 Ok" каждый раз ".
  6. Отправка" 354 Завершить данные с помощью. ".
  7. Получение строк до получения". ".
  8. Отправка 250 Ok: в очередикак 12345.
  9. Получите все последние строки, затем закройте сокет.

(example.com вместо полного доменного имени моего реального домена).

Это оченьдействительно грубый сценарий, однако в последние несколько месяцев он отлично работал для каждого электронного письма, которое мне нужно было получить. Я могу получать штраф с Gmail, Protonmail, проверочных писем и т. д. Я также получил несколько сканирований в Интернете, поэтому он служиттоже забавная приманка.

Сегодня я попытался получить письмо с подтверждением учетной записи Microsoft на адресзарегистрировать учетную запись Microsoft.Удаленный клиент, похоже, вообще не отвечал на 220!

# nc -l -v -p 25
Listening on [0.0.0.0] (family 0, port 25)
Connection from mail-co1nam03on0003.outbound.protection.outlook.com 56725 received!
220 example.com ESMTP Postfix

Независимо от того, что я пытался, клиент ничего не отправлял.Что я делаю неправильно?Любые идеи приветствуются.

1 Ответ

0 голосов
/ 04 октября 2018

tripleee решил это в комментариях, поэтому я выкладываю это как ответ здесь, чтобы все могли видеть.Проблема в том, что в качестве новой строки я указывал только LF, а не CRLF.Поэтому я заменил все '\ n' на '\ r \ n' в моем коде, и это исправило это.Я думаю, что другие почтовые серверы просто снисходительно относились ко мне.

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