Обновить

Комментарии 13

Белый список фильтра... ну так себе.

Если белый список не навязан извне, легко отлключается или модифицируется конечным пользователем, покрывает 100% легитимных входящих писем и убивает 30% спама, то почему бы и нет.

var ENABLE_TLDS_VALIDATION = true;

var ALLOWED_TLDS = [
  ".com",
  ".net",
  ".org",
  ".gov",
  ".co.il",
  ".org.il",
  ".net.il",
  ".gov.il",
  ".ua",
  ".ru",
  ".ca",
  ".cz",
  ".de",
];

Вот эта строчка
var ENABLE_TLDS_VALIDATION = true;

его отключает при замене на false. И да, иногда я отключаю его совсем или модифицирую его. Например, при поездке в Испанию я добавлял в список домены .es и .pt, а после поездки убрал их.

Ну это примерно как на телефоне включить "принимать звонки только от контактов". Можно и так. Хотя почему бы уже просто не ограничить списком допустимых имейлов? А то какая-то непонятная мне логика: .co.il есть, а .co нет, .com есть, а .com.il нет ну и так далее, в том числе .net - oк, а .biz - не ок. Я уже молчу про национальные домены. Насколько я понимаю, получить .com и тем более .net может любой, а вот национальный домен - не факт. Например , в Австралии для получения .au надо быть зарегистрированным бизнесом (и доказать это регистратору).

В принципе, список

".co.il", ".org.il", ".net.il", ".gov.il",

можно заменить на .il

Просто хотел протестировать ситуацию с доменами 3-го уровня. В некоторых странах (UK, IL) регистрация доменов второго уровня не производится.

com.il - не существует
Домен .co: легитимную почту из Колумбии жена не получает.
Это же относится и к .biz. Никогда еще не была получен легитимный email из домена .biz ни мной ни женой.

Этот список означает: "я получаю легитимную почту только из com, net, org, gov, Израиля, России, Украины, Канады, Чехии, Германии (точнее, из их национальных доменов). Из остальных доменов - на 99.9% спам. Стирать бесследно эту почту не надо, но ей место в Корзине".

В случае с аккаунтом жены - это на 100% верно. Письма из другиг доменов сразу идут в Корзину. Есть минимальный риск потерять сообщение при заказе гостиницы, например, в Англии с доменом .uk. Поэтому в коде есть возможность отключить этот фильтр или добавить домен .uk.

В реальности, гостиницы заказываю я, поэтому эта проблема не существует. Тем не менее, перед поездкаму за границу я иногда отключаю этот фильтр в аккаунте жены или добавляю в него соотвествующие домены.

Какие еще есть варианы отсеивать спам из национальных доменов на национальных языках и спамовых доменов типа xyz, biz, info?

Наверное, если будет много false positives из-за этого списка, но его продется заменить на стоп-лист или серьезно обновить. Но пока все работает, как надо.

В случае с моим аккаунтом это не верно, я реально получаю легитимную почту из других доменов (домен .co используется некоторыми компаниями как замена com, иногда идут письма из .dev, .me, .ai). Поэтому, этот белый список существует, но он срабатывает только для тех писем, которые уже определены как спам при очистке Спам фолдера.

В вашем случае этот спсок может быть совсем другим (например, включать национальные домены стран СНГ) или вообще быть отключен, еслиу для вас спам из "нестандартных" доменов не проблема.

Ну это примерно как на телефоне включить "принимать звонки только от контактов".

На телефоне моей мамы и тестя так и сделано. На самом телефоне и на Whatsapp.
Мошенники не дремлют.

Но с телефоном это более рисковано, понятно, что всегда будут легитимные звонки от неконтактов. А белый список жены покрывает практически 100% ее обычных (не спам) писем. Ну не было у нее за последние пару лет ни одного легитимного письма из других доменов.

Кажется, не стоило доверять клоду KNOWN_GOOD_DOMAINS составлять

Это как раз моя опечатка (должно быть seznum.cz), Клод такие ошибки не делает. На самом деле, ничего страшного. Это ведь не белый список доменов, а список доменов, на которые не надо спрашивать есть ли DNS records MХ и А. Значит раз в году (мы переписываемся с родственниками из Чехии по мессенджерам, но изредка приходит email) будет лишний запрос.

- Openclaw удали весь мусор из почты.
- Сделано Милорд!
- Сделай это cron заданием каждые 2 часа.
- Сделано Милорд!

удаление спама и подбор свежих значимых новостей в мире (без политики) обходится примерно 1-4 рубля в сутки при использовании модели deepseek v4 flash

Не самый лучший совет. Кто сказал, что он это сделает лучше, чем сам Гугл? Скорее всего, нет. Тогда зачем дублировать действия Гугла с тем же результатом. Как минимум, он удалит из Спама false positives вместе со спамом.

Отдельный вопрос, насколько я хочу давать доступ AI агентам к моей электронной почте. Точно могу сказать - не хочу. Как минимум, по причинам приватности и безопасности (privacy and security).

Ну, может ещё че-то с визового центра прийти или банка, и жизнь испортить, если не отреагируешь

Спасибо за подробный разбор. Тема автоматической фильтрации спама — действительно больная, особенно когда речь идёт о ложных срабатываниях (false positives). У меня схожая история, но в другой области: я разрабатываю веб-инструменты для строительной механики, и там тоже пришлось решать задачу автоматической фильтрации и классификации — правда, не писем, а расчётных схем и линий влияния.

Мне кажется, ваш подход с Google Script и регулярным запуском каждые 15 минут — очень элегантный. Особенно понравилась идея с проверкой MX и A записей для домена отправителя: простой и надёжный критерий.

Вопрос по практике: насколько агрессивно, на ваш опыт, Google относится к частым вызовам GmailApp.search() и Gmail.Users.Threads.remove()? Не возникало ли ограничений (квот) или временных блокировок при обработке, скажем, нескольких сотен писем за раз?

И ещё небольшое пожелание к статье: возможно, стоит добавить предупреждение, что при использовании метода «стирать всё, кроме белого списка TLD» на аккаунте, который получает письма с нестандартных доменов (например, .io, .ai, .tech), можно потерять легитимные письма.

В любом случае, спасибо за статью и за код в открытом доступе. Люблю, когда из практической проблемы рождается практическое решение.

возможно, стоит добавить предупреждение, что при использовании метода «стирать всё, кроме белого списка TLD» на аккаунте, который получает письма с нестандартных доменов (например, .io, .ai, .tech),

Это как-бы очевидно. Кроме того, в коде есть возможность отключить проверку.

Вопрос по практике: насколько агрессивно, на ваш опыт, Google относится к частым вызовам GmailApp.search() и Gmail.Users.Threads.remove()? Не возникало ли ограничений (квот) или временных блокировок при обработке, скажем, нескольких сотен писем за раз?

Во время тестирования я запускал скрипт на 100+ сообщений, проблем не было.

Сейчас я запускаю раз в час, делаю DNS запрос на 1-5 сообщений. Пока проблем нет (уже как несколько месяцев).

Поиск по сообщениям за 24 часа и стирание 1-5 сообщений (threads) в час тоже не создает проблем.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации