Недавно я экспериментировал с простым сценарием, который прослушивает порт 25, получает и регистрирует любые входящие электронные письма.
Это очень примитивный сценарий, и он вообще не реализует протокол SMTP.,Он просто выдает готовые ответы и работает примерно так:
- Ожидание входящего сокета.
- Отправка "220 example.com ESMTP Postfix".
- Получите одну строку, как правило, как «EHLO other.com».
- Отправьте «250 example.com, я рад встретиться с вами».
- Получите строки до «ДАННЫЕ», ответьтес "250 Ok" каждый раз ".
- Отправка" 354 Завершить данные с помощью. ".
- Получение строк до получения". ".
- Отправка 250 Ok: в очередикак 12345.
- Получите все последние строки, затем закройте сокет.
(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
Независимо от того, что я пытался, клиент ничего не отправлял.Что я делаю неправильно?Любые идеи приветствуются.