created and maintained by tokd
MewTips
Meadow 上で愛用していたメーラ Mew の Tips です.
Meadow終了時に定型メールをインタラクティブに送信
(defun-add-hook 'kill-emacs-query-functions (interactive) (if (y-or-n-p "Mail to Home?") (progn (mew-send "myhome@example.com" nil "今から帰ります") (goto-char (point-max)) (insert "今から帰ります") (setq mew-ask-send nil) (add-hook 'mew-smtp-sentinel-hook 'kill-emacs) (mew-draft-send-message)) t))
mew-summary-execute-external hack
C-c C-e を押したときに、
- キャッシュされていなかったら '.' を実行
- メールパートで実行されたら 'n' を実行
- Mac のリソースフォークなら 'n' を実行
(defadvice mew-summary-execute-external (before my-mew-summary-execute-external activate) (let* ((fld (mew-summary-folder-name)) (msg (mew-summary-message-number2)) (cache (mew-cache-hit fld msg)) syntax nums stx ctl ct program part) (if (not cache) (progn (mew-summary-analyze-again) (setq cache (mew-cache-hit fld msg)))) (setq syntax (mew-cache-decode-syntax cache) nums (mew-syntax-nums) stx (mew-syntax-get-entry syntax nums) ctl (mew-syntax-get-ct stx) ct (mew-syntax-get-value ctl 'cap) program (mew-ctdb-prog (mew-ctdb-by-ct ct)) part (mew-syntax-get-part syntax)) (if (and (equal program 'mew-mime-message/rfc822) (mew-syntax-multipart-p part)) (mew-summary-display-down)) (setq nums (mew-syntax-nums) stx (mew-syntax-get-entry syntax nums) ctl (mew-syntax-get-ct stx) ct (mew-syntax-get-value ctl 'cap)) (if (equal ct "Application/Applefile") (mew-summary-display-down))))
mew-browse (browse-url) で '~' 以降が URL として認識されない
EmacsTips に書いてあるように、'~' だけ latin-jisx0201 になってしまうのを
抑制すれば全部 URL として認識されるようになる。
警告色があるかどうかで signature を自動的に切り替える
c-sig の機能を利用する。
(defun my-insert-signature-eref (&optional arg) (interactive) (setq ovl (overlays-in (point-min) (mew-header-end))) (setq warnp nil) (while ovl (if (equal (overlay-get (car ovl) 'face) 'mew-face-header-warning) (setq warnp t)) (setq ovl (cdr ovl))) (if warnp (setq sig-default-name "external") (setq sig-default-name "internal")) (insert-signature-eref arg)) (defun-add-hook 'mew-draft-mode-hook (define-key mew-draft-mode-map "\C-ci" 'my-insert-signature-eref))
+inbox 以外のフォルダバッファを自動的に消去
2ch Mew スレ Part 4 の 386-388 を参考(私の投稿ですが)。
(require 'tempbuf) (setq tempbuf-life-extension-ratio 0 tempbuf-minimum-timeout 1) (defun-add-hook 'mew-summary-mode-hook (unless (string= (buffer-name) "+inbox") (turn-on-tempbuf-mode)))
Application/Mac-Binhex40 対応
gnus の binhex.el を利用。
(defun-add-hook 'mew-init-hook (mew-addq mew-mime-content-type '("Application/Mac-Binhex40" nil nil mew-prog-mac-binhex40 mew-icon-text))) (setq mew-prog-mac-binhex40 '(nil mew-func-mac-binhex40)) (defun mew-func-mac-binhex40 (cache begin end params) (let ((file (mew-make-temp-name (cadr (assoc "name" params))))) (with-temp-buffer (mew-set-buffer-multibyte nil) (insert-buffer-substring cache begin end) (binhex-decode-region (point-min) (point-max)) (mew-frwlet mew-cs-dummy mew-cs-binary (write-region (point-min) (point-max) file nil 'no-msg))) (mew-mime-start-process (mew-ctdb-prog (mew-ctdb-by-ct "application/octet-stream")) nil file)))