From: Anton Lysenok <bart@unixpages.net.>
Newsgroups: email
Date: Mon, 9 Nov 2008 17:02:14 +0000 (UTC)
Subject: Проверка адреса отправителя при помощи Smfsav
Оригинал: unixpages.net
Введение
Зачем нужна проверка адреса отправителя на почтовых серверах? SMTP
протокол фактически не гарантирует доставку письма, но всячески
способствует хотя бы косвенно уведомить отправителя о возможных
проблемах. Ниже приведена схема, по которой работает SMTP сервер:
Сервер получает письмо и пытается доставить получателю
Если возникает ошибка, создается отчет об ошибках и отправляется отправителю
Если возникает ошибка при отправке письма отправителю, сервер пытается
отправить отчет своему postmaster'у
Если недоступен адрес postmaster'a, в логи добавляется событие "savemail
panic" и обработка письма вместе с отчетом останавливается
Как видите, SMTP сервер пытается, во чтобы то ни стало, доставить письмо
получателю или известить компетентых людей об ошибках. Если у вас есть
почтовый сервер, обратите внимание, сколько писем у него в очереди.
Скорее всего, вы увидите письма от MAILER-DAEMON или postmaster на
непонятные адреса типа <klausdefargt093fstb@poweroverhealthing.ee.>.
Потому что спаммеры зачастую в своих письмах указывают неверный обратный
адрес, а заодно и неверный адрес получателя. Согласно вышеуказанной
схеме, отчет должен уйти отправителю, вот и висит он, потому что некуда
ему идти. Механизм проверки адреса отправителя вовсе не гарантирует, что
адрес отправителя в письме - это настоящий адрес отправителя, но
позволит нам хотя бы удостовериться, что это рабочий адрес, и, как
минимум, на него можно будет отправить отчет о недоставке.
Технология
Обычная SMTP сессия выглядит примерно так:
<= 220 Server ESMTP ready
=> HELO mx.yandex.ru
<= 250 server.firma.ua Hello mx.yandex.ru [212.89.22.56], pleased to meet you
=> MAIL FROM:<invalid@address.com.>
<= 250 2.1.0 Ok
=> RCPT TO:<petrov@firma.ua.>
<= 250 2.1.5 Ok
=> DATA
<= 354 Enter mail, end with "." on a line by itself
=> text
=> of
=> mail
=> .
<= 250 2.0.0 mAA8JNbB099896 Message accepted for delivery
=> QUIT
<= 221 2.0.0 server.firma.ua closing connection
Фильтр, отвечающий за проверку адреса получателя, вызывается почтовым
сервером после команды MAIL FROM и делает примерно следующие действия: