;;; Starting Up (setq gnus-select-method '(nnimap "mailhost")) ;;; Group buffer (add-hook 'gnus-group-mode-hook 'gnus-topic-mode) ;;; Summary Buffer (setq gnus-extra-headers '(To Newsgroups X-Face) nnmail-extra-headers gnus-extra-headers gnus-ignored-from-addresses user-full-name gnus-summary-line-format "%U%R%z%B%(%[%6,6~(cut 2)o: %-20,20f%]%) %s\n") (setq gnus-summary-show-article-charset-alist '((1 . iso-2022-7bit) (2 . shift_jis) (3 . euc-japan))) ;;; Article Buffer (setq gnus-signature-limit 8.0) (setq gnus-visible-headers nil) (setq gnus-treat-emphasize nil gnus-treat-display-smileys nil) (setq gnus-inhibit-mime-unbuttonizing t) (setq mm-inline-large-images t) (setq mm-inline-text-html-with-images t) (eval-after-load "gnus-art" '(define-key gnus-article-mode-map "q" 'gnus-article-show-summary)) (eval-after-load "mailcap" '(delete '("copiousoutput") (assoc "zip" (cdr (assoc "application" mailcap-mime-data))))) (eval-after-load "mm-decode" '(add-to-list 'mm-attachment-override-types "image/.*")) ;;; Composing Messages (setq gnus-user-agent 'emacs-gnus-config) (setq gnus-message-archive-method gnus-select-method gnus-message-archive-group "Sent") ;;; shimbun (setq nnshimbun-pre-fetch-article t) (setq shimbun-encapsulate-images nil) ;;; SPAM (setq spam-use-stat t spam-use-BBDB t) (require 'spam) ;;; IMAP (modify-syntax-entry ?\- "w" nnmail-split-fancy-syntax-table) (setq nnmail-cache-accepted-message-ids t nnmail-message-id-cache-length 5000) (setq nnmail-split-methods 'nnmail-split-fancy nnimap-split-rule 'nnmail-split-fancy) (setq bbdb/gnus-split-nomatch-function #'ignore) (defadvice nnimap-split-articles (before set-fancy-rule activate) (setq nnmail-split-fancy `(| ;; DUPLICATES!! ; ("gnus-warning" "duplicate of message" "duplicates") ;; Mailing-list 他 ; ("x-quickml" "true" ; ("x-ml-name" "\\b\\(\\w+\\)" "QuickML.\\1")) ("x-ml-name" "\\b\\(\\w+\\)" "ML.\\1") ,(gnus-group-split-fancy) ;; 親メールと同じグループへ ; (: nnmail-split-fancy-with-parent) ;; 私信 ,(if (fboundp 'gnus-bbdb/split-mail) '(: gnus-bbdb/split-mail "from\\|to\\|cc" 'gnus-private) '(: (lambda () (cons '& (bbdb/gnus-split-method))))) ;; SPAM filter (: spam-split) ;; default "misc" ))) (setq nnimap-split-inbox "INBOX") ;;; BBDB (when (require 'gnus-bbdb nil t) (add-hook 'gnus-startup-hook 'gnus-bbdb-insinuate) (add-hook 'gnus-message-mode-hook 'gnus-bbdb-insinuate-message) (setq gnus-bbdb/decode-field-body-function (if (boundp 'gnus-product-name) #'(lambda (field-body field-name) (eword-decode-string field-body)) #'(lambda (field-body field-name) (mail-decode-encoded-word-string field-body)))) (defun gnus-bbdb/show-sender () "Display the contents of the BBDB for the sender of this message. This buffer will be in bbdb-mode, with associated keybindings." (interactive) (let* ((bbdb-notice-hook nil) (record (gnus-bbdb/update-record t)) bbdb-win) (if record (progn (gnus-bbdb/pop-up-bbdb-buffer) (bbdb-display-records (list record))) (error "unperson")) (setq bbdb-win (get-buffer-window (get-buffer bbdb-buffer-name))) (and bbdb-win (select-window bbdb-win)))) ) ;;; gnus-summary-x-face (when (require 'gnus-summary-x-face nil t) (setq gnus-summary-line-format (if gnus-summary-x-face-function "%U%R%z%B%(%[%6,6~(cut 2)o:%ux %-20,20f%]%) %s\n" "%U%R%z%B%(%[%6,6~(cut 2)o:%ub %-20,20f%]%) %s\n"))) ;;; Various (setq gnus-use-full-window nil) (setq nnmail-pathname-coding-system 'ctext) (setq nntp-marks-is-evil t) ; XXX ;;; biff (setq display-time-mail-function (lambda () (let ((group "INBOX") active) (and (gnus-check-server (gnus-find-method-for-group group)) (let ((gnus-verbose (min gnus-verbose 4))) (gnus-request-group group)) (setq active (gnus-parse-active)) (null (zerop (cdr active)))))))