|
|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : Alexander Ogol 2:5020/400 19 Apr 2003 02:08:35 To : All Subject : Re: ifmail MSGID не совпадают -------------------------------------------------------------------------------- >>>>> "SO" == Serg Oskin writes: [kham-kham-kham....argh....] SO> Hеправильный: Заставить свою читалку/писалку генерить Message-ID, в котором SO> перед @ только цифры (int32). Я по ленности пошел по этому пути, правда SO> правил не читалку, а inn (патч есть в комплекте ifmail-os). :) кстати, кому надо в gnus генерить такой Message-Id (и не хочется патчить сервер :)), можно вот что добавить в .gnus --8<---------------cut here---------------start------------->8--- (defun message-unique-id () (setq message-unique-id-char (% (1+ (or message-unique-id-char (logand (random t) (1- (lsh 1 20))))) (* 25 25))) (let ((tm (current-time))) (concat (message-number-base10 (+ (car tm) (lsh (% message-unique-id-char 25) 16)) 4) (message-number-base10 (+ (nth 1 tm) (lsh (/ message-unique-id-char 25) 16)) 4) ))) (defun message-number-base10 (num len) (if (if (< len 0) (<= num 0) (= len 0)) "" (concat (message-number-base10 (/ num 10) (1- len)) (char-to-string (aref "9876543210" (% num 10)))))) --8<---------------cut here---------------end--------------->8--- по сравнению с оригинальным message-id: 1. Все генерируется в 10-ной системе вместо 16-чной 2. Hе используется user-id, которое return the effective uid of Emacs. Hадеюсь, это не создаст проблем с уникальностью message-id. Раньше первым аргументом concat был (if (memq system-type '(ms-dos emx vax-vms)) (let ((user (downcase (user-login-name)))) (while (string-match "[^a-z0-9_]" user) (aset user (match-beginning 0) ?_)) user) (message-number-base10 (user-uid) -1)) (см. исходники) 3. Убрано доклеивание .fsf в конце. -- Sincerely yours, Alexander Ogol, happy GNU/Linux user. --- ifmail v.2.15dev4 * Origin: ProphySoft (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.linux/133596f55733f.html, оценка из 5, голосов 10
|