Приветствую.
В общем, ноги проблемы растут из Cyrus-IMAP. У них Message-ID является
индексом и ID, несоответствующие RFC, режут. Спама с неправильным ID
не очень много, но плохо то, что сообщение успевает приняться и MTA
генерит DSN по левому, или, что хуже, по реальному, но не имеющему
отношения к рассылке, адресу. А вообще, видимо, это стоит сразу
универсально делать, потому как я еще и X-Mailer тоже можно проверять,
например, на OutLook Express 3.14159 или Advanced Mass Sender...
В общем, что-то вроде
check_header_line(<line>, <regexp>, <action>, [msg_if_regect])
кажется полезным. action - ok или reject в случае соответствия.
Отдельно касаемо Message-ID хотел регексп сочинить и ужаснулся тому,
что по RFC допустимо:
msg-id = "<" addr-spec ">" ; Unique message id
addr-spec = local-part "@" domain
local-part = word *("." word)
word = atom / quoted-string
quoted-string = <"> *(qtext/quoted-pair) <">
qtext = <any CHAR excepting <">, ; => may be folded
"\" & CR, and including
linear-white-space>
linear-white-space = 1*([CRLF] LWSP-char)
И это еще без того, что в domain допустимо...
Так что, придется от противного проверку для Message-ID делать, похоже...
--
С уважением, Сергей
a_s_y на sama.ru