Робяты, а кто может четко разложить по полкам чайнику, каким образом в ящик (взлетный пример:
[email protected]) падают спамерские письма, в заголовках которых
[email protected] отсутствует, как класс? Ваще нигде нет. Ни Кому, ни От кого, нигде адреса нет. Везде прописано какое-то фуфло. Подозреваю, что возможно есть какие-то технические поля, в которых лежит реальный адрес, по которому принимающий сервак и раскладывает почту по ящикам. Но почему он тогда не включается сервером в заголовок письма в то же поле Кому? Почему в Кому стоят какие-то левые адреса? Как такое возможно?
Это же элементарно ...
Реальный получатель (и отправитель) регламентируются не полями в заголовке письма, а командами SMTP-протокола "MAIL FROM:" и "RCPT TO:", которым обменивается SMTP-клиент с SMTP-сервером при подключении.
Про команды SMTP-протокола можно вкратце прочесть например
http://www.codenet.ru/webmast/smtp.php и http://www.opennet.ru/docs/RUS/inet_book/4/44/smtp4414.html.
Спросите, для чего тогда нужны поля заголовка? Да просто для красоты, чтобы пользователь почтового клиента видел в письме от кого и кому, якобы, оно послано. За доставку же отвечают именно адреса в SMTP-командах. И они могут не совпадать с указанными в полях заголовка. И это не недочет и не ошибка, а необходимая особенность.
Если используется форвардинг или релей (это такие разновидности пересылки писем по цепочке), то без такой рассогласованности не обойтись.
Например, при релее (которым обычно пользуются большинство диалапщиков, юзающих почтовые сервера прова), сначала клиент отправителя посылает письмо на сервер-релей (ибо не имеет возможности прямой доставки письма получателю, а релей имеет). Пока что адреса в SMTP-командах совпадают с адресами в полях. Затем релей подключается к получателю (или к следующему релею) и вот тут-то адрес отправителя в команде "MAIL FROM:" уже начинает отличаться от первоначального и от указанного в поле "From:". Потому что отправителем уже является не клиент отправителя, а релей. Он сообщает свой адрес, чтобы сервер получателя или следующий релей могли на него ответить в случае неудачи. Имеется в виду не ошибка, которая может быть обнаружена в ходе обмена командами, а более отложенная. Например, если следующий релей не смог передать письмо дальше по цепочке в течение установленного времени. Либо почтовый ящик получателя переполнен - обычно это обнаруживается уже после окончания приема письма и попытке разместить его в п/я. Но во всяком случае, поле "From:" заголовка останется прежним и получатель сможет увидеть, кем письмо было написано (если он подписался настоящим адресом, разумеется).
Другой случай - форвардинг. Вы посылаете письмо на какой-то внешний почтовый ящик, а этот сервер настроен так, что все входящие на этот ящик письма он сортирует и перенаправляет на другие п/я - реальным получателям или следующим форвардерам. В этом случае при пересылке будет изменяться команда "RCPT TO:". Но поле "To:" в письме останется первоначальным. И получатель может по этому полю определить, с какого внешнего п/я был произведен форвардинг (на какой внешний п/я было первоначально отправлено письмо), и произвести окончательную сортировку.
Ну а спамеры легко подделывают все эти поля и, обычно, адрес в команде "MAIL FROM:". Им важнее тот массив адресов жертв, который они передают в командах "RCPT TO:"