3 ;;; Configuration for VM
5 (setq vm-reply-subject-prefix "Re: "
6 vm-included-text-prefix "> "
7 vm-included-text-attribution-format "%F <%f> wrote:\n\n"
8 vm-folder-directory "~/Mail/"
9 vm-startup-with-summary t
10 vm-skip-deleted-messages nil
11 vm-circular-folders nil
13 vm-highlighted-header-regexp "^From\\|^Subject"
14 vm-movemail-program "movemail-hack"
15 vm-delete-after-saving t
16 vm-move-after-deleting t
17 vm-delete-empty-folders)
19 (and (eq (terminal-coding-system) 'utf-8)
20 (add-to-list 'vm-mime-default-face-charsets "utf-8"))
22 (setq vm-mime-qp-encoder-program "mimencode"
23 vm-mime-qp-encoder-switches '("-q")
24 vm-mime-qp-decoder-program "mimencode"
25 vm-mime-qp-decoder-switches '("-q" "-u")
26 vm-mime-base64-encoder-program "mimencode"
27 vm-mime-base64-encoder-switches '("-b")
28 vm-mime-base64-decoder-program "mimencode"
29 vm-mime-base64-decoder-switches '("-b" "-u"))
31 (setq vm-visible-headers '("resent-from:" "from:" "reply-to:" "sender:"
32 "to:" "apparently-to:" "cc:"
34 "delivered-to:" "return-path:"))
36 (setq vm-reply-ignored-addresses bbdb-user-mail-names)
38 (defvar mdw-mailing-lists
39 '("hibachi-dealers-members@chiark\\.greenend\\.org\\.uk"))
41 (setq vm-mime-external-content-types-alist
42 '(("image/jpeg" "xdg-open")
43 ("image/jpg" "xdg-open")
44 ("image/gif" "xdg-open")
45 ("image/bmp" "xdg-open")
46 ("image/tiff" "xdg-open")
47 ("application/postscript" "xdg-open")
48 ("application/pdf" "xdg-open")))
50 (setq vm-url-browser "sensible-browser")
52 (setq vm-frame-parameter-alist
53 '((folder ((width . 81) (height . 33)))
54 (summary ((width . 81) (height . 33)))
55 (primary-summary ((width . 81) (height . 33)))))
57 (setq vm-auto-folder-alist
58 '(("delivered-to" ("root@" . "admin"))
59 ("from" ("Cron Daemon" . "admin"))))
61 (defun join-strings (del strings)
62 (with-output-to-string
66 (setq strings (cdr strings))
70 (setq strings (cdr strings))))))
72 (defun mdw-vm-fix-mailing-lists ()
75 (or (vm-mail-mode-get-header-contents "Resent-To:")
76 (vm-mail-mode-get-header-contents "Resent-Cc:")
77 (vm-mail-mode-get-header-contents "Resent-Bcc:")
78 (let ((mailing-list-regex (concat "\\<\\("
82 (to (vm-mail-mode-get-header-contents "To:"))
83 (cc (vm-mail-mode-get-header-contents "Cc:")))
84 (if (or (and to (string-match mailing-list-regex to))
85 (and cc (string-match mailing-list-regex cc)))
86 (let ((addrs (nconc (and to (vm-parse-addresses to))
87 (and cc (vm-parse-addresses cc))))
90 (if (string-match mailing-list-regex (car addrs))
91 (setq new (cons (car addrs) new)))
92 (setq addrs (cdr addrs)))
93 (vm-mail-mode-remove-header "Cc:")
94 (vm-mail-mode-remove-header "To:")
96 (goto-char (point-min))
97 (insert (format "To: %s\n" (join-strings ", " new))))))))))
99 (add-hook 'vm-reply-hook 'mdw-vm-fix-mailing-lists)
101 (defun mdw-mark-as-spam ()
103 (save-window-excursion
104 (vm-pipe-message-to-command "userv spamd spam" 1))
105 (vm-delete-message 1))
106 (define-key vm-summary-mode-map "/" 'mdw-mark-as-spam)