добрый вечер, друзья!
напишу пожалуй сегодня о том как должна работать идеальная электронная почта :-) ..
(в моём представлении.. так сказать — выражу очень важное моё мнение :))
начнём с того — какими сущностями должна обладать идеальная электронная почта
- должы быть следующие каталоги:
inbox (подробности будут ниже — в главе "поведение").
inbox-spam (подробности будут ниже — в главе "поведение").
inbox-tmp (подробности будут ниже — в главе "поведение").
ну и дальше как обычно: draft и sent (про эти два каталога писать подробно не буду — они уже и так норм:)). - должен быть spam-агент (подключаемый например через OAuth.. или не подключаемый.. или подключаемый другими методами).
spam-агент располагает в своём распоряжении spam-тест (spam-тест это может быть например web-страничка в которой есть CAPTCHA). - у пользователя нашей почты — должны быть специальные контакт-списки — в количестве двух штук:
white-list (подробности будут ниже — в главе "поведение").
spam-list (подробности будут ниже — в главе "поведение").
списки НЕвзаимоисключающие: то есть, один и тот же контакт может находиться одновременно и в списке white-list и в списке spam-list.
теперь про поведение вышеуказанных сущностей
вот список правил (в случае конфликта — наиболее приоритетно то правило, которое имеет более меньший свой номер):
правило #1. письма удаляются из каталога inbox-tmp примерно через 10 минут своего существования. (другими словами: хранятся внутри каталога inbox-tmp — не более 10 минут).
правило #2. контакты удаляются из списка spam-list — примерно через 1 месяц своего неактивного существования. (другими словами: каждый контакт хранится в spam-list не более 1 месяца, в том случае, если этот контакт не передобавлялся в этот список в течении месяца).
правило #3. ни каких уведомлений о появлении новых писем внутри каталога inbox-tmp — НЕ должно быть для пользователя нашей почты. письма там должны появляться (и исчезать) максимально незаметно для пользователя. если пользователь захочет он прочитает письма каталога inbox-tmp, но ТОЛЬКО если ОН САМ этого захочет.
правило #4. в каталог inbox-tmp должна попадать вся входящая почта, которая не прошла успешную проверку по протоколу SPF (или у отправителя — SPF отсутствует вовсе), или если присутствует DKIM, но при этом DKIM не проходит успеную проверку. и эти письма НЕ должны попадать: ни в каталог inbox-spam, ни и каталог inbox.
правило #5. также, в каталог inbox-tmp должна попадать и входящая почта, отправитель которой отсутствует в обоих контакт-списках: и в списке spam-list и в списке white-list. и эти письма НЕ должны попадать: ни в каталог inbox-spam, ни и каталог inbox.
правило #6. в каталог inbox-spam должна попадать вся почта, отправитель которой отсутствует в списке white-list, но при этом присутствует в списке spam-list. кроме писем которые удовлетворяют правилам: #4 или #5.
правило #7. в каталог inbox должна попадать вся почта, отправитель которой присутствует в списке white-list. кроме писем которые удовлетворяют правилам: #4 или #5 или #6.
правило #8. в случае удовлетворения правилам #4 или #5 — spam-агент должен отослать уведомление отправителю (от имени пользователя нашей почты — в виде обычного текстового-email-письма) уведомление о том что к сожелению письмо не было получено, а также выслать web-ссылку на spam-тест, который необходимо пройти отправителю. НО ДЛЯ КАЖДОГО ОТПРАВИТЕЛЯ УВЕДОМЛЕНИЕ НЕ ДОЛЖНО ВЫСЫЛАТЬСЯ ЧАЩЕ 1 РАЗА В ДЕНЬ.
правило #9. если spam-агент обнаруживает что кто-то прошёл его spam-тест — то соответствующий контакт автоматически добавляется (или передобавляется) внутрь списка spam-list пользователя нашей почты.
правило #10. когда пользователь нашей почты — отправляет кому-то письмо, то этот контакт автоматически добавляется (или передобавляется) в spam-list этого нашего пользователя. (даже если контакт уже есть в списке white-list)
правило #11. пользователь может собственноручно (вручную) просматривать и редактировать свои контакт-списки (добавлять или удалять контакты): spam-list и white-list. но это правило не отменяет правила #2.
***
в зависимости от деталей реализации — допускаются косметические улучшения. например: если пользователь перемещает письмо из каталога inbox-spam в каталог inbox — то отправитель письма автоматически добавляется в white-list.
**************************************************
в общем, критикуйте! :-)