Почему в заголовке электронной почты "Received: ...by" указан порт?
Недавно у меня была проблема со спамом, пришедшим с конвертом из моего собственного адреса. Сначала я подумал, что это означало, что мой пароль был взломан, ошибочно подумав, что "with esmtp (Exim 4.87)" в предложении "by" заголовка Received моего почтового сервера означает, что он пришел через аутентифицированное соединение. Мой провайдер электронной почты быстро исправил меня, что входящие сообщения приходят от MTA, и MTA не аутентифицируются при передаче сообщения. Так что это может так же легко (и, скорее всего, так и произошло) пройти через открытый ретранслятор, так как все IP-адреса перечислены в 15 или более черных списках.
Когда я отправляю почту из Thunderbird, я подключаюсь к порту 587, и этот порт требует аутентификации. Если бы я мог посмотреть на заголовки и увидеть, что соединение с сервером моего провайдера было через порт 587, то я бы знал, что отправитель аутентифицировался, и если бы у него был мой собственный адрес в качестве конверта, то я бы знал, что мой пароль был скомпрометирован, верно? Ну, я думаю, что любой сервер в трассировке может изменить более ранние заголовки, но в этих случаях в трассе нет никаких других серверов. И даже если бы они были, неясно, почему сервер хотел бы изменить номер порта, указанный в предыдущем заголовке.
Я попытался спросить поставщика электронной почты, могут ли они добавить порт в свое предложение "Получено", и не получил значимого ответа. Я немного погуглил, чтобы посмотреть, есть ли у sendmail возможность сделать это, но ничего не получилось. Однако, я предполагаю, что заголовок фактически говорит мне, что они используют exim, а не sendmail, и эта ссылка показывает, где содержимое заголовка настроено в Exim, хотя в тексте не говорится, как ссылаться на номер входящего порта.
Но, учитывая, что номер порта, по-видимому, предоставляет очень ценную информацию всем, кто имеет дело со спамом от поддельных отправителей, мне интересно, почему он не включен по умолчанию.
1 ответ
Номер порта не будет полезен в строке Received:, поскольку существуют стандартные порты для транспорта электронной почты, и использование альтернативных портов на самом деле невозможно.
Если вы хотите узнать, было ли сообщение аутентифицировано каким-либо почтовым средством, вы можете найти эту информацию в строке Received:, проверив протокол, с которым оно было получено. Это начинается с "SMTP", а затем добавляются расширения в начало и конец на основе различных критериев. Если сообщение было аутентифицировано, оно будет иметь "A" в конце, как указано в 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)