Commit | Line | Data |
---|---|---|
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 | |
fb8111fc MW |
27 | (setq auth-sources '("~/.gnus.authinfo") |
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) |