У меня недавно возникла проблема со спамом, приходящим с конвертом, состоящим из моего собственного адреса. Сначала я подумал, что это означает, что мой пароль был скомпрометирован, ошибочно думая, что «with esmtp (Exim 4.87)» в предложении «by» в заголовке Received моего почтового сервера означает, что он пришел через аутентифицированное соединение. Мой провайдер электронной почты быстро поправил меня, что входящие сообщения приходят от MTA, а MTA не аутентифицируются при передаче сообщения. Таким образом, это могло так же легко (и, скорее всего, было) пройти через открытый ретранслятор, поскольку все IP-адреса были перечислены в 15 или более черных списках.
Когда я отправляю почту из Thunderbird, я подключаюсь к порту 587, и этот порт требует аутентификации. Если бы я мог взглянуть на заголовки и увидеть, что соединение с сервером моего интернет-провайдера было через порт 587, тогда я бы знал, что отправитель аутентифицирован, и если бы у него был мой собственный адрес в качестве отправителя, то я бы знал, что мой пароль был скомпрометирован, верно? Что ж, я предполагаю, что любой сервер в трассировке может изменять более ранние заголовки, но в этих случаях в трассировке нет других серверов. И даже если бы они были, непонятно, зачем серверу изменять номер порта, указанный в более раннем заголовке.
Я попытался спросить провайдера электронной почты, могут ли они добавить порт в свой пункт «Получено», но не получил значимого ответа. Я немного погуглил, чтобы узнать, есть ли у sendmail возможность сделать это, но ничего не добился. Однако я думаю, что заголовок действительно говорит мне, что они используют Exim, а не sendmail, и этот ссылка показывает, где содержимое заголовка настроено в eximʻe, хотя не говорит, как ссылаться на номер входящего порта в тексте.
Но учитывая, что номер порта, кажется, предоставляет очень ценную информацию для всех, кто имеет дело со спамом от поддельных отправителей, мне интересно, почему он не включен по умолчанию.
Номер порта не будет полезен в строке Received :, поскольку существуют стандартные порты для транспорта электронной почты, а использование альтернативных портов на самом деле невозможно.
Если вы хотите узнать, было ли сообщение аутентифицировано какой-либо почтовой программой, вы можете найти эту информацию в строке Received :, проверив протокол, по которому оно было получено. Он начинается с «SMTP», а затем в начало и конец добавляются расширения на основе различных критериев. Если сообщение было аутентифицировано, оно будет иметь в конце букву «А», как указано в RFC 3848. Пример:
Received: from pool-70-20-60-215.man.east.myfairpoint.net (pool-70-20-60-215.man.east.myfairpoint.net [70.20.60.215]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by mail.example.com (Postfix) with ESMTPSA id C540E956034; Wed, 27 Jul 2016 18:35:17 +0000 (UTC)