1
|
1 |
(require 'browse-url)
|
|
2 |
|
|
3 |
;;;_ Custom functions
|
|
4 |
|
|
5 |
; Redefine browse-url-mail for ?subject=SUBJECT support.
|
|
6 |
|
|
7 |
(defun browse-url-mail (url &optional new-window)
|
|
8 |
"Open a new mail message buffer within Emacs.
|
|
9 |
Default to using the mailto: URL around or before point as the
|
|
10 |
recipient's address. Supplying a non-nil interactive prefix argument
|
|
11 |
will cause the mail to be composed in another window rather than the
|
|
12 |
current one.
|
|
13 |
|
|
14 |
When called interactively, if variable `browse-url-new-window-flag' is
|
|
15 |
non-nil use `compose-mail-other-window', othserwise `compose-mail'. A
|
|
16 |
non-nil interactive prefix argument reverses the effect of
|
|
17 |
`browse-url-new-window-flag'.
|
|
18 |
|
|
19 |
When called non-interactively, optional second argument NEW-WINDOW is
|
|
20 |
used instead of `browse-url-new-window-flag'."
|
|
21 |
(interactive (browse-url-interactive-arg "Mailto URL: "))
|
|
22 |
(save-excursion
|
|
23 |
(let ((to (if (string-match "^mailto:" url)
|
|
24 |
(substring url 7)
|
|
25 |
url))
|
|
26 |
(subject nil))
|
|
27 |
(if (string-match "\\?subject=" to)
|
|
28 |
(setq subject (substring to (match-end 0))
|
|
29 |
to (substring to 0 (match-beginning 0))))
|
|
30 |
(if (browse-url-maybe-new-window new-window)
|
|
31 |
(compose-mail-other-window to subject nil nil
|
|
32 |
(list 'insert-buffer (current-buffer)))
|
|
33 |
(compose-mail to subject nil nil nil
|
|
34 |
(list 'insert-buffer (current-buffer)))))))
|
|
35 |
|
|
36 |
;;;_ Wanderlust settings
|
|
37 |
|
|
38 |
(autoload 'wl-user-agent-compose "wl-draft" nil t)
|
|
39 |
(if (boundp 'mail-user-agent)
|
|
40 |
(setq mail-user-agent 'wl-user-agent))
|
|
41 |
(if (fboundp 'define-mail-user-agent)
|
|
42 |
(define-mail-user-agent
|
|
43 |
'wl-user-agent
|
|
44 |
'wl-user-agent-compose
|
|
45 |
'wl-draft-send
|
|
46 |
'wl-draft-kill
|
|
47 |
'mail-send-hook))
|
|
48 |
(setq wl-draft-init-config-alist
|
|
49 |
'((reply "^\\(To\\|CC\\): .*@alteranode.com"
|
|
50 |
("From" . "Fabien Ninoles <fabien@alteranode.com>"))
|
|
51 |
(reply "^\\(To\\|CC\\): .*fabien@flipr.com"
|
|
52 |
("From" . "Fabien Ninoles <fabien@flipr.com>"))))
|
|
53 |
(setq wl-draft-send-config-alist
|
|
54 |
'(("^From: .*fabien\\(\\+.*\\)?@tzone.org"
|
|
55 |
("BCC" . "fabien+sentmail@tzone.org"))
|
|
56 |
("From: .*fabien\\(\\+.*\\)?@alteranode.com"
|
|
57 |
("Organisation" . "Alteranode, inc.")
|
|
58 |
("BCC" . "fabien+sentmail@alteranode.com"))
|
|
59 |
("From: .*fabien\\(\\+.*\\)?@flipr.com"
|
|
60 |
("BCC" . "fabien+sentmail@alteranode.com"))))
|
|
61 |
(add-hook 'wl-mail-setup-hook
|
|
62 |
'(lambda ()
|
|
63 |
(wl-draft-config-exec wl-draft-init-config-alist)
|
|
64 |
(setq wl-draft-config-exec-flag t)))
|
|
65 |
(add-hook 'wl-draft-send-hook
|
|
66 |
'(lambda ()
|
|
67 |
(setq wl-draft-config-exec-flag t)
|
|
68 |
(wl-draft-config-exec wl-draft-send-config-alist)
|
|
69 |
))
|
|
70 |
|
|
71 |
;;;_ BBDB configuration
|
|
72 |
|
|
73 |
(require 'bbdb-wl)
|
|
74 |
(bbdb-wl-setup)
|
|
75 |
;; exceptional folders against auto collection
|
|
76 |
(setq bbdb-wl-ignore-folder-regexp "^@")
|
|
77 |
(setq signature-use-bbdb t)
|
|
78 |
;; automatically add mailing list fields
|
|
79 |
(setq bbdb-ignore-selected-messages-confirmation t)
|
|
80 |
|
|
81 |
(provide 'my-mail) |