> И всё же, как? Вот пример списка, как его добавить в модуль
> whitelist?Модуль whitelist предназначен для другого: он как раз позволяет сделать проверку по SMTP From с учетом, например, удачной проверки DKIM/SPF/DMARC. Впрочем, я планирую добавить этот функционал и в multimap: https://github.com/vstakhov/rspamd/issues/765
Для вашей конкретной задачи я бы сделал такие правила multimap:
spam_from_header {
type = "header"; # Берем From из заголовка
header = "From"; # Имя заголовка
filter = "email:addr"; # Извлекаем адрес: Vasya Pupkin <pupkin@example.com> -> pupkin@example.com
map = "/tmp/from.map"; # Имя файла, где будем вести список
symbol = "SPAMFROM"; # Имя символа
description = "Spam From header"; # Описание (для webui)
regexp = true; # Включаем regexp'ы (желательно также иметь билд с гиперсканом)
}
Дальше в файле "/tmp/from.map" можно добавлять выражения (это также можно делать из морды):
/^.*user@domain.*$/
user2@domain2
# commented line
Изменения в этом файле автоматически перезагружаются rspamd (также можно выложить его где-то через веб-сервер и загружать со всего кластера по http с обновлением только при модификациях). Если вы допустили ошибку, то изменения откатываются к последней "хорошей" комбинации, а об ошибке пишется в лог.
Если вам нужен не header from, а smtp from, то меняется только type = "from", остальное можно не трогать. Для задания веса можно написать в `local.d/metrics.conf` что-то вроде такого:
group "My maps" {
symbol "SPAMFROM" {
score = 5.0;
description = "Map of bad from patterns";
}
}
Надеюсь, что объяснил достаточно подробно. Да, все это также можно было сделать и через модуль whitelist, а также через простейшее правило на lua.