Sergey wrote:
> В общем, ноги проблемы растут из 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 делать, похоже...
судя по всему, пока будем отталкиваться от того, что Message-ID:
1. должен быть в угловых скобках
2. внутри угловых скобок должен присутствовать ID, содержащий символ "@"
3. после открывающейся угловой скобки не должен следовать символ "@"
4. после символа "@" не должна следовать точка
5. не должно быть двух точек подряд
еще что-то?
и еще - я так понимаю, что из этих правил не следует делать исключений
ни для кого, правильно?
--
Best wishes Victor Ustugov mailto:victor на corvax.kiev.ua
public GnuPG/PGP key: http://victor.corvax.kiev.ua/corvax.asc
ICQ: 77186900, 32418694 CRV2-RIPE, CRV-UANIC