;;; -*- emacs-lisp -*-

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Mew

;; 下記の2つは、ダイアルアップ環境の場合は設定しておくと、
;; オフラインで操作できる
(setq mew-auto-get nil)			; Mew 起動時にメイルを取得しない
(setq mew-auto-flush-queue t)		; 送信メイルを queue に入れる

;;
(setq mew-use-timer nil)
(setq mew-pop-uidl-db nil)

;; draft-mode で auto-fill-mode を有効にする
(setq mew-draft-mode-hook (function (lambda () (auto-fill-mode 1))))
;; 返信メイルを名前で引用する
(setq mew-cite-prefix-function 'mew-cite-prefix-username)

;; Reply-to のみに返信する
(setq mew-replyto-to-list '("Reply-To:"))
(setq mew-replyto-cc-list nil)

;; 重複メールに削除マークをつける
(setq mew-scan-form-mark-delete t)

;; 自分からのメールを特別扱いにしない
;(setq mew-scan-form-from-me-prefix nil)

;; grep の指定
;(setq mew-prog-grep "jgrep")

;; header が長過ぎると解析しなくなる。
;(setq mew-header-max-length 100)

;; Mew の速度測定結果を平均速度順にする
(setq elp-sort-by-function 'elp-sort-by-average-time)

;; ちょっと派手にする。
(setq mew-use-highlight-cursor-line t)
(setq mew-highlight-cursor-line-face 'highlight)
(setq mew-use-fancy-highlight-body t)

;; 引用タグの幅
(setq mew-fancy-highlight-body-prefix-width 10)

;; コメントマークの指定
(setq mew-highlight-body-regex-comment "^[;##%]+.*")

;; マウスのある行をハイライトしない
(setq mew-use-highlight-mouse-line nil)


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Meassage モードのヘッダ設定

;; 他のヘッダの表示  t:する nil:しない
(setq mew-field-other-visible t)

;; 表示する|しないヘッダの指定

(setq mew-field-spec
  '(
    ;;表示しないヘッダ
    ("^\\(Received\\|Return-Path\\|Sender\\|Errors-To\\):$" nil)
    ("^\\(Message-Id\\|Posted\\|In-Reply-To\\|References\\|Precedence\\):$" nil)
    ("^Delivered-" nil)
    ("^\\(Mime-Version\\|Lines\\):$" nil)
    ("^From$" nil)
    ("^\\(Status\\|Mailing-List\\|Reply-To\\|Status\\|Cancel-Lock\\):$" nil)
    ("^Importance:$" nil)
    ("^Organization:$" nil)
    ("^Illegal-Object:$" nil)
    ("^X-\\(Face-Version\\|Face\\|UIDL\\|Now-Playing\\|cite-me\\):$" nil)
    ("^X-\\(PostPet\\|C-Sig\\|Dispatcher\\|URI\\|Uri\\|URL\\):$" nil)
    ("^X-\\(Priority\\|MSMail-Priority\\|MimeOLE\\|Sender\\):$" nil)
    ("^X-ML\\(Server\\|-Info\\):$" nil)
    ("^X-PGP-\\(Fingerprint\\|Key\\):$" nil)
    ("^X-FingerPrint:$" nil)

    ;;表示するヘッダ
    ("^Resent-\\(From\\|To\\|Cc\\|Date\\)" t
     mew-face-header-key
     mew-face-header-important)
    ("^Subject:$" t
     mew-face-header-key
     mew-face-header-subject)
    ("^From:$" t
     mew-face-header-key
     mew-face-header-from)
    ("^\\(To\\|Apparently-To\\):$" t
     mew-face-header-key
     mew-face-header-to)
    ("^Cc:$" t
     mew-face-header-key
     mew-face-header-to)
    ("^Newsgroups:$" t
     mew-face-header-key
     mew-face-header-to)
    ("^Date:$" t
     mew-face-header-key
     mew-face-header-important)
    ("^X-Mailer:$" t
     mew-face-header-key
     mew-face-header-important)
    ("^User-Agent:$" t
     mew-face-header-key
     mew-face-header-important)
    ("^X-ML-\\(NAME\\|Name\\):$" t
     mew-face-header-key
     mew-face-header-xmew)
    ("^X-\\(ML-COUNT\\|Mail-Count\\|Seqno\\):$" t
     mew-face-header-key
     mew-face-header-xmew)
    ("^X-Mew:$" t
     mew-face-header-important
     mew-face-header-xmew-bad)))


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; thread

(setq mew-use-thread-cursor t)

(setq mew-thread-column 28)		;default 28
(setq mew-use-fancy-thread t)
(setq mew-fancy-thread-indent-strings [" ┣" " ┗" " ┃" "  "])

(setq mew-use-thread-separator t)
(setq mew-thread-separator "------------")


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; password-cache
(setq mew-use-cached-passwd t)		; password を保存する
(setq mew-passwd-lifetime 144)		; password cache する時間
					; 1 = 10 minutes

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; config-alist

;;Input/Output を別々に切替 nil:する t:しない
(setq mew-config-synchronize t)

(setq mew-config-alist
      '(("usr1"
	 ("name"         . "hoge")
	 ("user"         . "hoge")
	 ("pop-server"   . "mail.net")
	 ("pop-size"     . 0)		; 取得するメイルサイズ 0=無制限
	 ("pop-auth"     . pass)	; pop=pass, APOP=apop,
	 ("pop-user"     . "hoge")
	 ("smtp-server"  . "mail.net")
	 ("pop-delete"   . t)		; サーバにメイルを残さない
	 ("mail-domain"  . "mail.net")
	 ("msgid-domain" . "mail.net")
         ("header-alist" . (("X-cite-me:" . "hoge")
			    ("X-Uri:"     . "http://www.hoge.com/"))))
	("default"
	 ("name"         ."hoge")
	 ("user"         . "hoge")
	 ("pop-server"   . "mail.ne.jp")
	 ("pop-size"     . 0)
	 ("pop-auth"     . pass)
	 ("pop-user"     . "hoge")
	 ("smtp-server"  . "mail.ne.jp")
	 ("pop-delete"   . t)
	 ("mail-domain"  . "mail.ne.jp")
	 ("msgid-domain" . "mail.ne.jp"))))


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; auto refile

(setq mew-refile-guess-alist
      '(("To:"
	 ("namazu-users-ja@namazu.org" . "+mail/namazu")
	 ("FreeBSD-users-jp@jp.freebsd.org" . "+mail/bsd/users-jp")
	 ("bsd-nomads@clave.gr.jp" . "+mail/bsd/nomads")
	 ("cgi-lst@y7.net" . "+mail/cgi-ML")
	 )
	("From:"
	 ("admdb@isize.com" . "+job")
	 )
	("X-ML-Name:"
	 ("Mew-dist"  . "+mail/mew/dist")
	 ("Mew-Win32" . "+mail/mew/win32")
	 )
	("X-ML-NAME:"
	 ("meadow-users-jp" . "+mail/meadow")
	 ("semi-gnus-ja"    . "+mail/semi-gnus")
	 )
	("X-Ml-Name:"
	 ("cgiscript" . "+mail/script-cgi")
	 )))

;;;;;;;;;;;;;;;;;;;;;;
;; From アドレスを全部 To: に加える

(defun mew-insert-all-from-address (&optional fld)
  (interactive)
  (setq fld (or fld (mew-input-folder (mew-inbox-folder))))
  (let ((msgs (directory-files (mew-expand-folder fld) nil "^[1-9][0-9]*$" 'no-sort))
	froms from)
    (save-excursion
      (while msgs
	(mew-set-buffer-tmp)
	(mew-insert-message fld (car msgs) mew-cs-autoconv
			    mew-header-reasonable-size)
	(setq msgs (cdr msgs))
	(setq from (mew-header-parse-address mew-from:))
	(if from (setq froms (cons from froms))))
      (setq froms (mew-uniq-list froms)))
    (insert (mapconcat (function identity) (sort froms 'string<) ", "))))

;; .mew ends here