el/dot-emacs.el (mdw-regexp): Sort the input list.
[profile] / dot / vm
CommitLineData
f617db13
MW
1;;; -*-emacs-lisp-*-
2;;;
3;;; Configuration for VM
4
fb8111fc
MW
5(require 'auth-source)
6
6b3f86c6
MW
7(setq vm-reply-subject-prefix "Re: "
8 vm-included-text-prefix "> "
9 vm-included-text-attribution-format "%F <%f> wrote:\n\n"
10 vm-folder-directory "~/Mail/"
11 vm-startup-with-summary t
12 vm-skip-deleted-messages nil
13 vm-circular-folders nil
14 vm-preview-lines nil
15 vm-highlighted-header-regexp "^From\\|^Subject"
370d4c8d 16 vm-movemail-program "movemail-hack"
444c8564
MW
17 vm-mail-header-from (format "Mark Wooding <%s>"
18 (or (mdw-config 'email)
19 "mdw@distorted.org.uk"))
6b3f86c6
MW
20 vm-delete-after-saving t
21 vm-move-after-deleting t
393e450b
MW
22 vm-delete-empty-folders nil
23 vm-summary-format "%*%a [%-16.16F]: %I%s\n")
24
25(setq-default vm-summary-show-threads t)
6b3f86c6 26
8f69bcd5 27(setq auth-sources '("~/.authinfo.gpg")
fb8111fc
MW
28 vm-imap-max-message-size 0
29 vm-imap-refer-to-inbox-by-account-name t
30 vm-imap-save-to-server t
31 vm-imap-account-alist
32 '(("imap-ssl:mail.distorted.org.uk:993:*:login:mdw:*"
33 "distorted")
34 ("imap-ssl:mail.distorted.org.uk:993:*:login:markw:*"
35 "markw-distorted")
36 ("imap-ssl:imap.dovecot.chiark.greenend.org.uk:993:*:login:mdw:*"
37 "mdw-chiark")
38 ("imap-ssl:imap.dovecot.chiark.greenend.org.uk:993:*:login:mwooding:*"
39 "mwooding-chiark")
40 ("imap-ssl:imap.gmail.com:993:*:login:distorted.mdw@gmail.com:*"
41 "google")))
42
7445ca65
MW
43(and (eq (terminal-coding-system) 'utf-8)
44 (add-to-list 'vm-mime-default-face-charsets "utf-8"))
45
a7e3398f
MW
46(setq vm-mime-qp-encoder-program nil
47 vm-mime-qp-decoder-program nil
48 vm-mime-base64-encoder-program nil
49 vm-mime-base64-decoder-program nil)
6b3f86c6 50
f617db13
MW
51(setq vm-visible-headers '("resent-from:" "from:" "reply-to:" "sender:"
52 "to:" "apparently-to:" "cc:"
53 "subject:" "date:"
54 "delivered-to:" "return-path:"))
6b3f86c6 55
4ecc8e68
MW
56(setq vm-reply-ignored-addresses
57 (let ((pat bbdb-user-mail-names))
58 (if (string-prefix-p "^" pat)
59 (setq pat (substring pat 1)))
60 (if (string-suffix-p "$" pat)
61 (setq pat (substring pat 0 (1- (length pat)))))
62 (cons (concat "\\<" pat "\\>") nil)))
f617db13
MW
63
64(defvar mdw-mailing-lists
65 '("hibachi-dealers-members@chiark\\.greenend\\.org\\.uk"))
66
67(setq vm-mime-external-content-types-alist
773d8b62
MW
68 '(("image/jpeg" "xdg-open")
69 ("image/jpg" "xdg-open")
70 ("image/gif" "xdg-open")
71 ("image/bmp" "xdg-open")
72 ("image/tiff" "xdg-open")
73 ("application/postscript" "xdg-open")
74 ("application/pdf" "xdg-open")))
f617db13 75
773d8b62 76(setq vm-url-browser "sensible-browser")
f617db13
MW
77
78(setq vm-frame-parameter-alist
4b05ce02
MW
79 '((folder ((width . 81) (height . 33)))
80 (summary ((width . 81) (height . 33)))
e4a505a0 81 (primary-summary ((width . 81) (height . 33)))))
f617db13
MW
82
83(setq vm-auto-folder-alist
739cf036
MW
84 '(("delivered-to" ("root@" . "admin"))
85 ("from" ("Cron Daemon" . "admin"))))
f617db13 86
f617db13
MW
87(defun join-strings (del strings)
88 (with-output-to-string
89 (if (null strings)
90 nil
91 (princ (car strings))
92 (setq strings (cdr strings))
93 (while strings
94 (princ del)
95 (princ (car strings))
96 (setq strings (cdr strings))))))
cc643e69 97
f617db13
MW
98(defun mdw-vm-fix-mailing-lists ()
99 (save-restriction
100 (save-excursion
101 (or (vm-mail-mode-get-header-contents "Resent-To:")
102 (vm-mail-mode-get-header-contents "Resent-Cc:")
103 (vm-mail-mode-get-header-contents "Resent-Bcc:")
104 (let ((mailing-list-regex (concat "\\<\\("
105 (join-strings "\\|"
106 mdw-mailing-lists)
107 "\\)\\>"))
108 (to (vm-mail-mode-get-header-contents "To:"))
109 (cc (vm-mail-mode-get-header-contents "Cc:")))
110 (if (or (and to (string-match mailing-list-regex to))
111 (and cc (string-match mailing-list-regex cc)))
112 (let ((addrs (nconc (and to (vm-parse-addresses to))
113 (and cc (vm-parse-addresses cc))))
114 (new nil))
115 (while addrs
116 (if (string-match mailing-list-regex (car addrs))
117 (setq new (cons (car addrs) new)))
118 (setq addrs (cdr addrs)))
119 (vm-mail-mode-remove-header "Cc:")
120 (vm-mail-mode-remove-header "To:")
121 (widen)
122 (goto-char (point-min))
123 (insert (format "To: %s\n" (join-strings ", " new))))))))))
124
125(add-hook 'vm-reply-hook 'mdw-vm-fix-mailing-lists)
c3600620
MW
126
127(defun mdw-mark-as-spam ()
128 (interactive)
129 (save-window-excursion
130 (vm-pipe-message-to-command "userv spamd spam" 1))
131 (vm-delete-message 1))
132(define-key vm-summary-mode-map "/" 'mdw-mark-as-spam)