Стендап Сьогодні 📢 Канал в Telegram @stendap_sogodni
🤖🚫 AI-free content. This post is 100% written by a human, as is everything on my blog. Enjoy!30.09.2022
Дві різні адреси електронного листа
✉️✍️📭 Наступна дивина SMTP. Всі знають, що у листа є адреси “кому” та “від кого”. Але насправді у кожного листа є 2 пари адрес. Якщо проводити аналогію з паперовим листом, то одна пара — на конверті, а інша — на самому листі.
Технічно це виглядає так: електронний лист являє собою повідомлення формату RFC 5322, який дуже схожий на формат HTTP. Між іншим, в листі є заголовки, серед яких і From
, і To
. Тут все достатньо зрозуміло.
Але називати цей формат “форматом SMTP” буде невірно. Бо, як я вже казав, SMTP - діалоговий протокол, і весь лист, з усіма заголовками відправляється командою DATA
. Так от що виявляється — перед цією командою сервер SMTP очікує команди MAIL FROM
та RCPT TO
, в яких також вказується відправник і отримувач! Це і є той самий “конверт” SMTP, визначений у RFC 5321.
Система електронної пошти, мабуть, за дизайном повторює пошту паперову, тому що значення на конверті використовуються для доставлення пошти адресату, а значення в листі — це те, що ми бачимо в поштовому клієнті. При чому адреси у листі та на конверті ніяк між собою не повʼязані та можуть бути абсолютно різними.
Який в цьому сенс? Я напевно не знаю, але знаю одну функцію пошти, яка на цьому базується, а саме BCC
- “прихована копія”. (Я це несподівано дізнався, коли довелося її реалізовувати.) Коли ти вказуєш заголовок Bcc
, то твій поштовий клієнт відправить лист без цього заголовку, але додасть отримувача в перелік RCPT TO
. Так всі адресати побачать той самий лист, але не побачать, хто отримав приховану копію.
А ще спамери, звісно, зловживають цим, щоб дурити нас і підписувати листи ким хочуть. Лист, в якому заголовок From:
та адреса MAIL FROM
не збігаються хоча б за доменом, втрачає в автентичності, але все одно є шанс його отримати.