Rspamd жалуется на заголовок Mime-Version

Я получил письма, созданные Discourse (это письмо и моё собственное), в которых присутствует следующий заголовок:

Mime-Version: 1.0

и rspamd присваивает этому 0,5 отрицательных баллов за спам. :frowning:

Думаю, заголовок должен быть записан так:

MIME-Version: 1.0

Сообщите им, что они ошибаются, и им следует исправить свой инструмент.

RFC 5322 - Internet Message Format : (выделение моё)

1.2.2. Синтаксическая нотация. В данной спецификации для формальных определений синтаксиса сообщений используется расширенная форма Бэкуса — Наура (ABNF) [RFC5234]. Символы указываются либо десятичным значением (например, значение %d65 для заглавной A и %d97 для строчной a), либо регистронезависимым буквальным значением, заключённым в кавычки (например, “A” для заглавной или строчной A).

Я думаю, что то же самое касается и заголовка Message-ID, где также ожидаются заглавные буквы ID. В противном случае и он получает низкие оценки.

Даже если они (rspamd) могут нарушать стандарт таким ожиданием, это может быть оправдано. Если больше легитимной почты использует такой синтаксис, а спам чаще всего — другой, то фильтрация таким способом может быть допустимой.

Только что добавил этот вопрос и ответ в rspamd:

По моему мнению, ошибочно негативно оценивать что-то только потому, что это «часто используется в спаме», так как это не учитывает, насколько это распространено в целом.

Учитывая тот факт, что каждая установка Discourse использует варианты Mime и Id, очевидно, что они также широко применяются в «нормальной» почте. Мне бы очень хотелось увидеть здесь какие-то цифры.

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

И плохая сторона этого в том, что мы, как пользователи или администраторы таких инстансов, оказываемся между двумя сторонами и не можем решить, кто прав.

Кроме того, всегда можно провести различие между тем, чтобы сделать это просто правильно, и тем, чтобы сделать это ещё лучше.
Часто мне приходилось проявлять гибкость в техническом общении с внешними системами. Они просто не делают всё на 100 % правильно или, по крайней мере, не так, как я понимал стандарты. Поэтому вокруг стандартов всегда будет существовать некоторая серая зона гибкости.

Для меня кажется, что крупные игроки пишут эти заголовки, следуя этим правилам:

  • Если это аббревиатура, используйте её полностью в верхнем регистре.
  • Если это слово, используйте первую букву заглавной, а остальные — строчными.

С учётом этого паттерна MIME и ID выглядят логично, как и Message или Version.

Это соответствует стандарту, который указывает на регистронезависимость, и служит лишь небольшим намёком на то, что это более стандартно, чем RFC. На мой взгляд, в Discourse при создании писем не будет вреда следовать тому же подходу.