annotate lisp/mail/feedmail.el @ 46205:6676ac71682b

Update mouse button info. Don't give the names of Emacs commands that the characters run. Clarify what SPC and DEL do. Clarify the description of the minibuffer. Wording change for completion. Explain Mouse-2 better.
author Richard M. Stallman <rms@gnu.org>
date Sun, 07 Jul 2002 11:31:31 +0000
parents b61ebf167ba0
children 5e18e835d9fa
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
22609
c2ed862173da Style and doc fixes.
Karl Heuer <kwzh@gnu.org>
parents: 22552
diff changeset
1 ;;; feedmail.el --- assist other email packages to massage outgoing messages
c2ed862173da Style and doc fixes.
Karl Heuer <kwzh@gnu.org>
parents: 22552
diff changeset
2 ;;; This file is in the public domain.
c2ed862173da Style and doc fixes.
Karl Heuer <kwzh@gnu.org>
parents: 22552
diff changeset
3
38436
b174db545cfd Some fixes to follow coding conventions.
Pavel Janík <Pavel@Janik.cz>
parents: 35616
diff changeset
4 ;; This file is part of GNU Emacs.
b174db545cfd Some fixes to follow coding conventions.
Pavel Janík <Pavel@Janik.cz>
parents: 35616
diff changeset
5
33424
82e71ffbac94 Fix header,
Dave Love <fx@gnu.org>
parents: 26778
diff changeset
6 ;; Author: Bill Carpenter <bill@bubblegum.net>, <bill@carpenter.ORG>
82e71ffbac94 Fix header,
Dave Love <fx@gnu.org>
parents: 26778
diff changeset
7 ;; Version: 8
82e71ffbac94 Fix header,
Dave Love <fx@gnu.org>
parents: 26778
diff changeset
8 ;; Keywords: email, queue, mail, sendmail, message, spray, smtp, draft
82e71ffbac94 Fix header,
Dave Love <fx@gnu.org>
parents: 26778
diff changeset
9 ;; X-URL: <URL:http://www.carpenter.org/feedmail/feedmail.html>
82e71ffbac94 Fix header,
Dave Love <fx@gnu.org>
parents: 26778
diff changeset
10
22609
c2ed862173da Style and doc fixes.
Karl Heuer <kwzh@gnu.org>
parents: 22552
diff changeset
11 ;;; Commentary:
c2ed862173da Style and doc fixes.
Karl Heuer <kwzh@gnu.org>
parents: 22552
diff changeset
12
c2ed862173da Style and doc fixes.
Karl Heuer <kwzh@gnu.org>
parents: 22552
diff changeset
13 ;; A replacement for parts of Emacs' sendmail.el (specifically,
c2ed862173da Style and doc fixes.
Karl Heuer <kwzh@gnu.org>
parents: 22552
diff changeset
14 ;; it's what handles your outgoing mail after you hit C-c C-c in mail
c2ed862173da Style and doc fixes.
Karl Heuer <kwzh@gnu.org>
parents: 22552
diff changeset
15 ;; mode). See below for a list of additional features, including the
c2ed862173da Style and doc fixes.
Karl Heuer <kwzh@gnu.org>
parents: 22552
diff changeset
16 ;; ability to queue messages for later sending. If you are using
c2ed862173da Style and doc fixes.
Karl Heuer <kwzh@gnu.org>
parents: 22552
diff changeset
17 ;; fakemail as a subprocess, you can switch to feedmail and eliminate
c2ed862173da Style and doc fixes.
Karl Heuer <kwzh@gnu.org>
parents: 22552
diff changeset
18 ;; the use of fakemail. feedmail works with recent versions of
c2ed862173da Style and doc fixes.
Karl Heuer <kwzh@gnu.org>
parents: 22552
diff changeset
19 ;; Emacs (mostly, but not exclusively, tested against 19.34 on
c2ed862173da Style and doc fixes.
Karl Heuer <kwzh@gnu.org>
parents: 22552
diff changeset
20 ;; Win95; some testing on 20.x) and XEmacs (tested with 20.4 and
c2ed862173da Style and doc fixes.
Karl Heuer <kwzh@gnu.org>
parents: 22552
diff changeset
21 ;; later betas). It probably no longer works with Emacs 18,
c2ed862173da Style and doc fixes.
Karl Heuer <kwzh@gnu.org>
parents: 22552
diff changeset
22 ;; though I haven't tried that in a long time. Sorry, no manual yet
c2ed862173da Style and doc fixes.
Karl Heuer <kwzh@gnu.org>
parents: 22552
diff changeset
23 ;; in this release. Look for one with the next release.
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
24
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
25 ;; As far as I'm concerned, anyone can do anything they want with
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
26 ;; this specific piece of code. No warranty or promise of support is
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
27 ;; offered. This code is hereby released into the public domain.
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
28
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
29 ;; Thanks: My thanks to the many people who have sent me suggestions
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
30 ;; and fixes over time, as well as those who have tested many beta
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
31 ;; iterations. Some are cited in comments in code fragments below,
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
32 ;; but that doesn't correlate well with the list of folks who have
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
33 ;; actually helped me along the way.
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
34
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
35 ;; If you use feedmail, I invite you to send me some email about it.
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
36 ;; I appreciate feedback about problems you find or suggestions for
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
37 ;; improvements or added features (even though I can't predict when
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
38 ;; I'll incorporate changes). It's also OK with me if you send me a
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
39 ;; note along the lines of "I use feedmail and find it useful" or "I
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
40 ;; tried feedmail and didn't find it useful, so I stopped using it".
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
41 ;;
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
42 ;; It is most useful, when sending a bug report, if you tell me what
22609
c2ed862173da Style and doc fixes.
Karl Heuer <kwzh@gnu.org>
parents: 22552
diff changeset
43 ;; version of Emacs you are using, what version of feedmail you are
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
44 ;; using, and what versions of other email-related elisp packages you
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
45 ;; are using. If in doubt about any of that, send the bug report
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
46 ;; anyhow.
22609
c2ed862173da Style and doc fixes.
Karl Heuer <kwzh@gnu.org>
parents: 22552
diff changeset
47 ;;
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
48 ;; =====
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
49 ;; A NOTE TO THOSE WHO WOULD CHANGE THIS CODE... Since it is PD,
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
50 ;; you're within your rights to do whatever you want. If you do
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
51 ;; publish a new version with your changes in it, please (1) insert
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
52 ;; lisp comments describing the changes, (2) insert lisp comments
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
53 ;; that clearly delimit where your changes are, (3) email me a copy
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
54 ;; (I can't always consistently follow the relevant usenet groups),
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
55 ;; and (4) use a version number that is based on the version you're
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
56 ;; changing along with something that indicates you changed it. For
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
57 ;; example,
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
58 ;;
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
59 ;; (defconst feedmail-patch-level "123")
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
60 ;; (defconst feedmail-patch-level "123-XYZ-mods")
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
61 ;;
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
62 ;; The point of the last item, of course, is to try to minimize
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
63 ;; confusion. Odds are good that if your idea makes sense to me that
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
64 ;; it will show up in some future version of feedmail, though it's
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
65 ;; hard to say when releases will tumble out.
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
66 ;; =====
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
67 ;;
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
68 ;; This file requires the mail-utils library.
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
69 ;;
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
70 ;; This file requires the smtpmail library if you use
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
71 ;; feedmail-buffer-to-smtpmail.
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
72 ;;
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
73 ;; This file requires the custom library. Unfortunately, there are
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
74 ;; two incompatible versions of the custom library. If you don't have
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
75 ;; custom or you have the old version, this file will still load and
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
76 ;; work properly. If you don't know what custom is all about and want
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
77 ;; to edit your user option elisp variables the old fashioned way,
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
78 ;; just imagine that all the "defcustom" stuff you see below is really
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
79 ;; "defvar", and ignore everthing else. For info about custom, see
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
80 ;; <URL:http://www.dina.kvl.dk/~abraham/custom/>.
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
81 ;;
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
82 ;; This code does in elisp a superset of the stuff that used to be done
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
83 ;; by the separate program "fakemail" for processing outbound email.
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
84 ;; In other words, it takes over after you hit "C-c C-c" in mail mode.
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
85 ;; By appropriate setting of options, you can still use "fakemail",
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
86 ;; or you can even revert to sendmail (which is not too popular
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
87 ;; locally). See the variables at the top of the elisp for how to
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
88 ;; achieve these effects (there are more features than in this bullet
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
89 ;; list, so trolling through the variable and function doc strings may
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
90 ;; be worth your while):
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
91 ;;
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
92 ;; --- you can park outgoing messages into a disk-based queue and
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
93 ;; stimulate sending them all later (handy for laptop users);
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
94 ;; there is also a queue for draft messages
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
95 ;;
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
96 ;; --- you can get one last look at the prepped outbound message and
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
97 ;; be prompted for confirmation
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
98 ;;
22801
e71025b5e000 Avoid using all-caps for non-arguments.
Karl Heuer <kwzh@gnu.org>
parents: 22800
diff changeset
99 ;; --- removes Bcc:/Resent-Bcc: headers after getting address info
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
100 ;;
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
101 ;; --- does smart filling of address headers
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
102 ;;
22801
e71025b5e000 Avoid using all-caps for non-arguments.
Karl Heuer <kwzh@gnu.org>
parents: 22800
diff changeset
103 ;; --- calls a routine to process Fcc: lines and removes them
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
104 ;;
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
105 ;; --- empty headers are removed
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
106 ;;
22801
e71025b5e000 Avoid using all-caps for non-arguments.
Karl Heuer <kwzh@gnu.org>
parents: 22800
diff changeset
107 ;; --- can force From: or Sender: line
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
108 ;;
22801
e71025b5e000 Avoid using all-caps for non-arguments.
Karl Heuer <kwzh@gnu.org>
parents: 22800
diff changeset
109 ;; --- can generate a Message-Id: line
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
110 ;;
22801
e71025b5e000 Avoid using all-caps for non-arguments.
Karl Heuer <kwzh@gnu.org>
parents: 22800
diff changeset
111 ;; --- can generate a Date: line; the date can be the time the
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
112 ;; message was written or the time it is being sent
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
113 ;;
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
114 ;; --- strips comments from address info (both "()" and "<>" are
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
115 ;; handled via a call to mail-strip-quoted-names); the
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
116 ;; comments are stripped in the simplified address list given
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
117 ;; to a subprocess, not in the headers in the mail itself
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
118 ;; (they are left unchanged, modulo smart filling)
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
119 ;;
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
120 ;; --- error info is pumped into a normal buffer instead of the
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
121 ;; minibuffer
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
122 ;;
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
123 ;; --- just before the optional prompt for confirmation, lets you
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
124 ;; run a hook on the prepped message and simplified address
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
125 ;; list
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
126 ;;
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
127 ;; --- you can specify something other than /bin/mail for the
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
128 ;; subprocess
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
129 ;;
22801
e71025b5e000 Avoid using all-caps for non-arguments.
Karl Heuer <kwzh@gnu.org>
parents: 22800
diff changeset
130 ;; --- you can generate/modify an X-Mailer: message header
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
131 ;;
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
132 ;; After a long list of options below, you will find the function
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
133 ;; feedmail-send-it. Hers's the best way to use the stuff in this
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
134 ;; file:
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
135 ;;
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
136 ;; Save this file as feedmail.el somewhere on your elisp
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
137 ;; loadpath; byte-compile it. Put the following lines somewhere in
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
138 ;; your ~/.emacs stuff:
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
139 ;;
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
140 ;; (setq send-mail-function 'feedmail-send-it)
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
141 ;; (autoload 'feedmail-send-it "feedmail")
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
142 ;;
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
143 ;; If you plan to use the queue stuff, also use this:
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
144 ;;
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
145 ;; (setq feedmail-enable-queue t)
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
146 ;; (autoload 'feedmail-run-the-queue "feedmail")
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
147 ;; (autoload 'feedmail-run-the-queue-no-prompts "feedmail")
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
148 ;; (setq auto-mode-alist (cons '("\\.fqm$" . mail-mode) auto-mode-alist))
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
149 ;;
22609
c2ed862173da Style and doc fixes.
Karl Heuer <kwzh@gnu.org>
parents: 22552
diff changeset
150 ;; If you are using the desktop.el library to restore your sessions, you might
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
151 ;; like to add the suffix ".fqm" to the list of non-saved things via the variable
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
152 ;; desktop-files-not-to-save.
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
153 ;;
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
154 ;; If you are planning to call feedmail-queue-reminder from your .emacs or
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
155 ;; something similar, you might need this:
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
156 ;;
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
157 ;; (autoload 'feedmail-queue-reminder "feedmail")
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
158 ;;
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
159 ;; If you ever use rmail-resend and queue messages, you should do this:
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
160 ;;
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
161 ;; (setq feedmail-queue-alternative-mail-header-separator "")
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
162 ;;
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
163 ;; If you want to automatically spell-check messages, but not when sending
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
164 ;; them from the queue, you could do something like this:
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
165 ;;
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
166 ;; (autoload 'feedmail-mail-send-hook-splitter "feedmail")
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
167 ;; (add-hook 'mail-send-hook 'feedmail-mail-send-hook-splitter)
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
168 ;; (add-hook 'feedmail-mail-send-hook 'ispell-message)
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
169 ;;
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
170 ;; If you are using message-mode to compose and send mail, feedmail will
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
171 ;; probably work fine with that (someone else tested it and told me it worked).
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
172 ;; Follow the directions above, but make these adjustments instead:
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
173 ;;
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
174 ;; (setq message-send-mail-function 'feedmail-send-it)
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
175 ;; (add-hook 'message-mail-send-hook 'feedmail-mail-send-hook-splitter)
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
176 ;;
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
177 ;; I think the LCD is no longer being updated, but if it were, this
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
178 ;; would be a proper LCD record. There is an old version of
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
179 ;; feedmail.el in the LCD archive. It works but is missing a lot of
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
180 ;; features.
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
181 ;;
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
182 ;; LCD record:
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
183 ;; feedmail|Bill Carpenter|bill@bubblegum.net,bill@carpenter.ORG|Outbound mail queue handling|98-06-15|8|feedmail.el
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
184 ;;
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
185 ;; Change log:
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
186 ;; original, 31 March 1991
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
187 ;; patchlevel 1, 5 April 1991
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
188 ;; patchlevel 2, 24 May 1991
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
189 ;; 5-may-92 jwz Conditionalized calling expand-mail-aliases, since that
22609
c2ed862173da Style and doc fixes.
Karl Heuer <kwzh@gnu.org>
parents: 22552
diff changeset
190 ;; function doesn't exist in Lucid Emacs or when using
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
191 ;; mail-abbrevs.el.
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
192 ;; patchlevel 3, 3 October 1996
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
193 ;; added queue stuff; still works in v18
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
194 ;; patchlevel 4, issued by someone else
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
195 ;; patchlevel 5, issued by someone else
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
196 ;; patchlevel 6, not issued as far as I know
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
197 ;; patchlevel 7, 20 May 1997
22609
c2ed862173da Style and doc fixes.
Karl Heuer <kwzh@gnu.org>
parents: 22552
diff changeset
198 ;; abandon futile support of Emacs 18 (sorry if that hurts you)
22801
e71025b5e000 Avoid using all-caps for non-arguments.
Karl Heuer <kwzh@gnu.org>
parents: 22800
diff changeset
199 ;; provide a Date: header by default
e71025b5e000 Avoid using all-caps for non-arguments.
Karl Heuer <kwzh@gnu.org>
parents: 22800
diff changeset
200 ;; provide a default for generating Message-Id: header contents
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
201 ;; and use it by default (slightly changed API)
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
202 ;; return value from feedmail-run-the-queue
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
203 ;; new wrapper function feedmail-run-the-queue-no-prompts
22801
e71025b5e000 Avoid using all-caps for non-arguments.
Karl Heuer <kwzh@gnu.org>
parents: 22800
diff changeset
204 ;; user-mail-address as default for From:
e71025b5e000 Avoid using all-caps for non-arguments.
Karl Heuer <kwzh@gnu.org>
parents: 22800
diff changeset
205 ;; properly deal with Resent-{To,Cc,Bcc}
e71025b5e000 Avoid using all-caps for non-arguments.
Karl Heuer <kwzh@gnu.org>
parents: 22800
diff changeset
206 ;; Bcc and Resent-* now included in smart filling
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
207 ;; limited support for a "drafts" directory
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
208 ;; user-configurable default message action
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
209 ;; allow timeout for confirmation prompt (where available)
22801
e71025b5e000 Avoid using all-caps for non-arguments.
Karl Heuer <kwzh@gnu.org>
parents: 22800
diff changeset
210 ;; move Fcc handling to as late as possible to get max
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
211 ;; header munging in the saved file
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
212 ;; work around sendmail.el's prompts when working from queue
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
213 ;; more reliably detect voluntary user bailouts
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
214 ;; offer to save modified buffers visiting queue files
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
215 ;; offer to delete old file copies of messages being queued
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
216 ;; offer to delete queue files when sending immediately
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
217 ;; queue filename convention preserves queue order
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
218 ;; default queue and draft directory names that work on VMS
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
219 ;; deduced address list now really a list, not a string (API change)
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
220 ;; no more address buffer
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
221 ;; when sending immediately, brief reminder of queue/draft counts
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
222 ;; copy trace of smtpmail stuff to feedmail error buffer on no-go
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
223 ;; more granularity on when to confirm sending
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
224 ;; pause a bit for errors while running queue
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
225 ;; try to clean up some pesky auto-save files from the
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
226 ;; queue/draft directories
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
227 ;; feedmail-force-expand-mail-aliases in case you can't figure
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
228 ;; any other way
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
229 ;; cleanup some of my sloppiness about case-fold-search (a strange
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
230 ;; variable)
22609
c2ed862173da Style and doc fixes.
Karl Heuer <kwzh@gnu.org>
parents: 22552
diff changeset
231 ;; best effort following coding conventions from Emacs
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
232 ;; elisp manual appendix
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
233 ;; "customize" (see custom.el)
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
234 ;; when user selects "immediate send", clear action prompt since
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
235 ;; hooks may take a while to operate, and user may think the
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
236 ;; response didn't take
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
237 ;; fixes to the argument conventions for the
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
238 ;; feedmail-queue-runner-* functions; allows
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
239 ;; feedmail-run-the-queue[-no-prompts] to properly be called
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
240 ;; non-interactively
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
241 ;; eliminate reliance on directory-sep-char and feedmail-sep-thing
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
242 ;; tweak smart filling (reminded of comma problem by levitte@lp.se)
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
243 ;; option to control writing in text vs binary mode
22552
c9dbdcb10fdf entered into RCS
Richard M. Stallman <rms@gnu.org>
parents: 22513
diff changeset
244 ;; patchlevel 8, 15 June 1998
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
245 ;; reliable re-editing of text-mode (vs binary) queued messages
22801
e71025b5e000 Avoid using all-caps for non-arguments.
Karl Heuer <kwzh@gnu.org>
parents: 22800
diff changeset
246 ;; user option to keep Bcc: in Fcc: copy (keep by default)
e71025b5e000 Avoid using all-caps for non-arguments.
Karl Heuer <kwzh@gnu.org>
parents: 22800
diff changeset
247 ;; user option to delete body from Fcc: copy (keep by default)
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
248 ;; feedmail-deduce-bcc-where for envelope (API change for
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
249 ;; feedmail-deduce-address list)
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
250 ;; feedmail-queue-alternative-mail-header-separator
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
251 ;; at message action prompt, "I"/"S" bypass message confirmation prompt
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
252 ;; feedmail-mail-send-hook-splitter, feedmail-mail-send-hook,
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
253 ;; feedmail-mail-send-hook-queued
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
254 ;; user can supply stuff for message action prompt
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
255 ;; variable feedmail-queue-runner-confirm-global, function feedmail-run-the-queue-global-prompt
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
256 ;; bugfix: absolute argument to directory-files (tracked down for me
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
257 ;; by gray@austin.apc.slb.com (Douglas Gray Stephens)); relative
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
258 ;; pathnames can tickle stuff in ange-ftp remote directories
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
259 ;; (perhaps because feedmail is careless about its working
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
260 ;; directory)
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
261 ;; feedmail-deduce-envelope-from
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
262 ;; always supply envelope "from" (user-mail-address) to sendmail
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
263 ;; feedmail-message-id-suffix
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
264 ;; feedmail-queue-reminder, feedmail-queue-reminder-alist (after suggestions
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
265 ;; and/or code fragments from tonyl@Eng.Sun.COM (Tony Lam) and
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
266 ;; burge@newvision.com (Shane Burgess); bumped up the default value of
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
267 ;; feedmail-queue-chatty-sit-for since info is more complex sometimes
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
268 ;; feedmail-enable-spray (individual transmissions, crude mailmerge)
22801
e71025b5e000 Avoid using all-caps for non-arguments.
Karl Heuer <kwzh@gnu.org>
parents: 22800
diff changeset
269 ;; blank Subject: no longer a special case; see feedmail-nuke-empty-headers
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
270 ;; fiddle-plexes data structure used lots of places; see feedmail-fiddle-plex-blurb
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
271 ;; feedmail-fiddle-plex-user-list
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
272 ;; feedmail-is-a-resend
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
273 ;; honor mail-from-style in constructing default for feedmail-from-line
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
274 ;; re-implement feedmail-from-line and feedmail-sender-line with
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
275 ;; fiddle-plexes; slightly modified semantics for feedmail-sender-line
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
276 ;; feedmail-queue-default-file-slug; tidy up some other slug details
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
277 ;; feedmail-queue-auto-file-nuke
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
278 ;; feedmail-queue-express-to-queue and feedmail-queue-express-to-draft
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
279 ;; strong versions of "q"ueue and "d"raft answers (always make a new file)
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
280 ;;
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
281 ;; todo (probably in patchlevel 9):
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
282 ;; write texinfo manual
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
283 ;; maybe partition into multiple files, including files of examples
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
284 ;;
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
285 ;;; Code:
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
286
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
287 (defconst feedmail-patch-level "8")
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
288
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
289
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
290 ;; from <URL:http://www.dina.kvl.dk/~abraham/custom/>:
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
291 ;; If you write software that must work without the new custom, you
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
292 ;; can use this hack stolen from w3-cus.el:
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
293 (eval-and-compile
41608
45db352a0971 Converted backquote to the new style.
Sam Steingold <sds@gnu.org>
parents: 39477
diff changeset
294 (condition-case ()
45db352a0971 Converted backquote to the new style.
Sam Steingold <sds@gnu.org>
parents: 39477
diff changeset
295 (require 'custom)
45db352a0971 Converted backquote to the new style.
Sam Steingold <sds@gnu.org>
parents: 39477
diff changeset
296 (error nil))
45db352a0971 Converted backquote to the new style.
Sam Steingold <sds@gnu.org>
parents: 39477
diff changeset
297 (if (and (featurep 'custom) (fboundp 'custom-declare-variable))
45db352a0971 Converted backquote to the new style.
Sam Steingold <sds@gnu.org>
parents: 39477
diff changeset
298 nil ;; We've got what we needed
45db352a0971 Converted backquote to the new style.
Sam Steingold <sds@gnu.org>
parents: 39477
diff changeset
299 ;; We have the old custom-library, hack around it!
45db352a0971 Converted backquote to the new style.
Sam Steingold <sds@gnu.org>
parents: 39477
diff changeset
300 (defmacro defgroup (&rest args)
45db352a0971 Converted backquote to the new style.
Sam Steingold <sds@gnu.org>
parents: 39477
diff changeset
301 nil)
45db352a0971 Converted backquote to the new style.
Sam Steingold <sds@gnu.org>
parents: 39477
diff changeset
302 (defmacro defcustom (var value doc &rest args)
45db352a0971 Converted backquote to the new style.
Sam Steingold <sds@gnu.org>
parents: 39477
diff changeset
303 `(defvar ,var ,value ,doc))))
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
304
33984
d81160aa663f Require smtpmail when compiling.
Dave Love <fx@gnu.org>
parents: 33424
diff changeset
305 (eval-when-compile (require 'smtpmail))
d81160aa663f Require smtpmail when compiling.
Dave Love <fx@gnu.org>
parents: 33424
diff changeset
306 (autoload 'mail-do-fcc "sendmail")
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
307
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
308 (defgroup feedmail nil
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
309 "Assist other email packages to massage outgoing messages."
33984
d81160aa663f Require smtpmail when compiling.
Dave Love <fx@gnu.org>
parents: 33424
diff changeset
310 :link '(url-link "http://www.carpenter.org/feedmail/feedmail.html")
42787
b61ebf167ba0 (feedmail): Fix :link spec.
Andreas Schwab <schwab@suse.de>
parents: 42706
diff changeset
311 :link '(emacs-commentary-link "feedmail")
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
312 :group 'mail)
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
313
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
314 (defgroup feedmail-misc nil
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
315 "Miscellaneous feedmail options that don't fit in other groups."
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
316 :group 'feedmail)
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
317
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
318 (defgroup feedmail-headers nil
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
319 "Options related to manipulating specific headers or types of headers."
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
320 :group 'feedmail)
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
321
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
322 (defgroup feedmail-queue nil
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
323 "Options related to queuing messages for later sending."
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
324 :group 'feedmail)
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
325
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
326
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
327 (defcustom feedmail-confirm-outgoing nil
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
328 "*If non-nil, give a y-or-n confirmation prompt before sending mail.
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
329 This is done after the message is completely prepped, and you'll be
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
330 looking at the top of the message in a buffer when you get the prompt.
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
331 If set to the symbol 'queued, give the confirmation prompt only while
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
332 running the queue (however, the prompt is always suppressed if you are
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
333 processing the queue via feedmail-run-the-queue-no-prompts). If set
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
334 to the symbol 'immediate, give the confirmation prompt only when
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
335 sending immediately. For any other non-nil value, prompt in both
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
336 cases. You can give a timeout for the prompt; see variable
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
337 feedmail-confirm-outgoing-timeout."
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
338 :group 'feedmail-misc
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
339 :type 'boolean
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
340 )
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
341
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
342
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
343 (defcustom feedmail-confirm-outgoing-timeout nil
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
344 "*If non-nil, a timeout in seconds at the send confirmation prompt.
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
345 If a positive number, it's a timeout before sending. If a negative
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
346 number, it's a timeout before not sending. This will not work if your
22609
c2ed862173da Style and doc fixes.
Karl Heuer <kwzh@gnu.org>
parents: 22552
diff changeset
347 version of Emacs doesn't include the function y-or-n-p-with-timeout
c2ed862173da Style and doc fixes.
Karl Heuer <kwzh@gnu.org>
parents: 22552
diff changeset
348 \(e.g., some versions of XEmacs\)."
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
349 :group 'feedmail-misc
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
350 :type '(choice (const nil) integer)
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
351 )
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
352
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
353
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
354 (defcustom feedmail-nuke-bcc t
22801
e71025b5e000 Avoid using all-caps for non-arguments.
Karl Heuer <kwzh@gnu.org>
parents: 22800
diff changeset
355 "*If non-nil remove Bcc: lines from the message headers.
e71025b5e000 Avoid using all-caps for non-arguments.
Karl Heuer <kwzh@gnu.org>
parents: 22800
diff changeset
356 In any case, the Bcc: lines do participate in the composed address
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
357 list. You may want to leave them in if you're using sendmail
22609
c2ed862173da Style and doc fixes.
Karl Heuer <kwzh@gnu.org>
parents: 22552
diff changeset
358 \(see feedmail-buffer-eating-function\)."
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
359 :group 'feedmail-headers
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
360 :type 'boolean
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
361 )
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
362
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
363
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
364 (defcustom feedmail-nuke-resent-bcc t
22801
e71025b5e000 Avoid using all-caps for non-arguments.
Karl Heuer <kwzh@gnu.org>
parents: 22800
diff changeset
365 "*If non-nil remove Resent-Bcc: lines from the message headers.
e71025b5e000 Avoid using all-caps for non-arguments.
Karl Heuer <kwzh@gnu.org>
parents: 22800
diff changeset
366 In any case, the Resent-Bcc: lines do participate in the composed
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
367 address list. You may want to leave them in if you're using sendmail
22609
c2ed862173da Style and doc fixes.
Karl Heuer <kwzh@gnu.org>
parents: 22552
diff changeset
368 \(see feedmail-buffer-eating-function\)."
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
369 :group 'feedmail-headers
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
370 :type 'boolean
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
371 )
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
372
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
373
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
374 (defcustom feedmail-deduce-bcc-where nil
22609
c2ed862173da Style and doc fixes.
Karl Heuer <kwzh@gnu.org>
parents: 22552
diff changeset
375 "*Where Bcc:/Resent-Bcc: addresses should appear in the envelope list.
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
376 Addresses for the message envelope are deduced by examining
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
377 appropriate address headers in the message. Generally, they will show
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
378 up in the list of deduced addresses in the order that the headers
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
379 happen to appear (duplicate addresses are eliminated in any case).
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
380 This variable can be set to the symbol 'first, in which case the
22609
c2ed862173da Style and doc fixes.
Karl Heuer <kwzh@gnu.org>
parents: 22552
diff changeset
381 Bcc:/Resent-Bcc: addresses will appear at the beginning in the list;
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
382 or, it can be set to the symbol 'last, in which case they will appear
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
383 at the end of the list.
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
384
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
385 Why should you care? Well, maybe you don't, and certainly the same
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
386 things could be accomplished by affecting the order of message headers
22801
e71025b5e000 Avoid using all-caps for non-arguments.
Karl Heuer <kwzh@gnu.org>
parents: 22800
diff changeset
387 in the outgoing message. Some people use Bcc: as a way of getting
e71025b5e000 Avoid using all-caps for non-arguments.
Karl Heuer <kwzh@gnu.org>
parents: 22800
diff changeset
388 their own \"come back\" copy of each message they send. If Bcc:
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
389 addresses are not handled first, there can be substantial delays in
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
390 seeing the message again. Some configurations of sendmail, for example,
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
391 seem to try to deliver to each addressee at least once, immediately
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
392 and serially, so slow SMTP conversations can add up to a delay. There
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
393 is an option for either 'first or 'last because you might have a
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
394 delivery agent that processes the addresses backwards."
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
395 :group 'feedmail-headers
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
396 :type 'boolean
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
397 )
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
398
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
399
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
400 (defcustom feedmail-fill-to-cc t
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
401 "*If non-nil do smart filling of addressee header lines.
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
402 Smart filling means breaking long lines at appropriate points and
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
403 making continuation lines. Despite the function name, it includes
22801
e71025b5e000 Avoid using all-caps for non-arguments.
Karl Heuer <kwzh@gnu.org>
parents: 22800
diff changeset
404 To:, Cc:, Bcc: (and their Resent-* forms), as well as From: and
e71025b5e000 Avoid using all-caps for non-arguments.
Karl Heuer <kwzh@gnu.org>
parents: 22800
diff changeset
405 Reply-To: (though they seldom need it). If nil, the lines are left
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
406 as-is. The filling is done after mail address alias expansion."
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
407 :group 'feedmail-headers
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
408 :type 'boolean
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
409 )
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
410
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
411
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
412 (defcustom feedmail-fill-to-cc-fill-column default-fill-column
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
413 "*Fill column used by feedmail-fill-to-cc."
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
414 :group 'feedmail-headers
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
415 :type 'integer
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
416 )
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
417
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
418
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
419 (defcustom feedmail-nuke-bcc-in-fcc nil
22801
e71025b5e000 Avoid using all-caps for non-arguments.
Karl Heuer <kwzh@gnu.org>
parents: 22800
diff changeset
420 "*If non-nil remove [Resent-]Bcc: lines in message copies saved via Fcc:.
e71025b5e000 Avoid using all-caps for non-arguments.
Karl Heuer <kwzh@gnu.org>
parents: 22800
diff changeset
421 This is independent of whether the Bcc: header lines are actually sent
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
422 with the message (see feedmail-nuke-bcc). Though not implied in the name,
22801
e71025b5e000 Avoid using all-caps for non-arguments.
Karl Heuer <kwzh@gnu.org>
parents: 22800
diff changeset
423 the same Fcc: treatment applies to both Bcc: and Resent-Bcc: lines."
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
424 :group 'feedmail-headers
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
425 :type 'boolean
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
426 )
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
427
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
428
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
429 (defcustom feedmail-nuke-body-in-fcc nil
22801
e71025b5e000 Avoid using all-caps for non-arguments.
Karl Heuer <kwzh@gnu.org>
parents: 22800
diff changeset
430 "*If non-nil remove body of message in copies saved via Fcc:.
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
431 If an positive integer value, leave (up to) that many lines of the
22801
e71025b5e000 Avoid using all-caps for non-arguments.
Karl Heuer <kwzh@gnu.org>
parents: 22800
diff changeset
432 beginning of the body intact. The result is that the Fcc: copy will
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
433 consist only of the message headers, serving as a sort of an outgoing
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
434 message log."
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
435 :group 'feedmail-headers
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
436 :type '(choice (const nil) (const t) integer)
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
437 )
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
438
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
439
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
440 (defcustom feedmail-force-expand-mail-aliases nil
22609
c2ed862173da Style and doc fixes.
Karl Heuer <kwzh@gnu.org>
parents: 22552
diff changeset
441 "*If non-nil, force the calling of `expand-mail-aliases'.
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
442 Normally, feedmail tries to figure out if you're using mailalias or
22609
c2ed862173da Style and doc fixes.
Karl Heuer <kwzh@gnu.org>
parents: 22552
diff changeset
443 mailabbrevs and only calls `expand-mail-aliases' if it thinks you're
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
444 using the mailalias package. This user option can be used to force
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
445 the issue since there are configurations which fool the figuring
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
446 out."
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
447 :group 'feedmail-headers
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
448 :type 'boolean
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
449 )
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
450
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
451
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
452 (defcustom feedmail-nuke-empty-headers t
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
453 "*If non-nil, remove header lines which have no contents.
22801
e71025b5e000 Avoid using all-caps for non-arguments.
Karl Heuer <kwzh@gnu.org>
parents: 22800
diff changeset
454 A completely empty Subject: header is always removed, regardless of
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
455 the setting of this variable. The only time you would want them left
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
456 in would be if you used some headers whose presence indicated
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
457 something rather than their contents. This is rare in Internet email
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
458 but common in some proprietary systems."
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
459 :group 'feedmail-headers
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
460 :type 'boolean
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
461 )
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
462
22801
e71025b5e000 Avoid using all-caps for non-arguments.
Karl Heuer <kwzh@gnu.org>
parents: 22800
diff changeset
463 ;; wjc sez: I think the use of the Sender: line is pretty pointless,
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
464 ;; but I left it in to be compatible with sendmail.el and because
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
465 ;; maybe some distant mail system needs it. Really, though, if you
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
466 ;; want a sender line in your mail, just put one in there and don't
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
467 ;; wait for feedmail to do it for you. (Yes, I know all about
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
468 ;; RFC-822 and RFC-1123, but are you *really* one of those cases
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
469 ;; they're talking about? I doubt it.)
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
470 (defcustom feedmail-sender-line nil
22801
e71025b5e000 Avoid using all-caps for non-arguments.
Karl Heuer <kwzh@gnu.org>
parents: 22800
diff changeset
471 "*If non-nil and the email has no Sender: header, use this value.
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
472 May be nil, in which case nothing in particular is done with respect
22801
e71025b5e000 Avoid using all-caps for non-arguments.
Karl Heuer <kwzh@gnu.org>
parents: 22800
diff changeset
473 to Sender: lines. By design, will not replace an existing Sender:
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
474 line, but you can achieve that with a fiddle-plex 'replace action.
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
475 NB: it makes no sense to use the value t since there is no sensible
22801
e71025b5e000 Avoid using all-caps for non-arguments.
Karl Heuer <kwzh@gnu.org>
parents: 22800
diff changeset
476 default for Sender:.
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
477
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
478 If not nil, it may be a string, a fiddle-plex, or a function which
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
479 returns either nil, t, a string, or a fiddle-plex (or, in fact,
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
480 another function, but let's not be ridiculous). If a string, it
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
481 should be just the contents of the header, not the name of the header
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
482 itself nor the trailing newline. If a function, it will be called
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
483 with no arguments. For an explanation of fiddle-plexes, see the
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
484 documentation for the variable feedmail-fiddle-plex-blurb. In all
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
485 cases the name element of the fiddle-plex is ignored and is hardwired
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
486 by feedmail to either \"X-Sender\" or \"X-Resent-Sender\".
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
487
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
488 You can probably leave this nil, but if you feel like using it, a good
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
489 value would be a string of a fully-qualified domain name form of your
22801
e71025b5e000 Avoid using all-caps for non-arguments.
Karl Heuer <kwzh@gnu.org>
parents: 22800
diff changeset
490 address. For example, \"bill@bubblegum.net (WJCarpenter)\". The Sender:
e71025b5e000 Avoid using all-caps for non-arguments.
Karl Heuer <kwzh@gnu.org>
parents: 22800
diff changeset
491 header is fiddled after the From: header is fiddled."
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
492 :group 'feedmail-headers
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
493 :type '(choice (const nil) string)
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
494 )
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
495
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
496
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
497 (defcustom feedmail-force-binary-write t
22801
e71025b5e000 Avoid using all-caps for non-arguments.
Karl Heuer <kwzh@gnu.org>
parents: 22800
diff changeset
498 "*If non-nil, force writing file as binary (this applies to queues and Fcc:).
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
499 On systems where there is a difference between binary and text files,
22609
c2ed862173da Style and doc fixes.
Karl Heuer <kwzh@gnu.org>
parents: 22552
diff changeset
500 feedmail will temporarily manipulate the values of `buffer-file-type'
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
501 and/or default-buffer-file-type to make the writing as binary. If
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
502 nil, writing will be in text mode. On systems where there is no
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
503 distinction or where it is controlled by other variables or other
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
504 means, this option has no effect."
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
505 :group 'feedmail-misc
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
506 :type 'boolean
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
507 )
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
508
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
509
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
510 (defcustom feedmail-from-line t
22801
e71025b5e000 Avoid using all-caps for non-arguments.
Karl Heuer <kwzh@gnu.org>
parents: 22800
diff changeset
511 "*If non-nil and the email has no From: header, use this value.
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
512 May be t, in which case a default is computed (and you probably won't
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
513 be happy with it). May be nil, in which case nothing in particular is
22801
e71025b5e000 Avoid using all-caps for non-arguments.
Karl Heuer <kwzh@gnu.org>
parents: 22800
diff changeset
514 done with respect to From: lines. By design, will not replace an
e71025b5e000 Avoid using all-caps for non-arguments.
Karl Heuer <kwzh@gnu.org>
parents: 22800
diff changeset
515 existing From: line, but you can achieve that with a fiddle-plex 'replace
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
516 action.
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
517
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
518 If neither nil nor t, it may be a string, a fiddle-plex, or a function
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
519 which returns either nil, t, a string, or a fiddle-plex (or, in fact,
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
520 another function, but let's not be ridiculous). If a string, it
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
521 should be just the contents of the header, not the name of the header
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
522 itself nor the trailing newline. If a function, it will be called
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
523 with no arguments. For an explanation of fiddle-plexes, see the
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
524 documentation for the variable feedmail-fiddle-plex-blurb. In all
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
525 cases the name element of the fiddle-plex is ignored and is hardwired
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
526 by feedmail to either \"X-From\" or \"X-Resent-From\".
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
527
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
528 A good value would be a string fully-qualified domain name form of
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
529 your address. For example, \"bill@bubblegum.net (WJCarpenter)\". The
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
530 default value of this variable uses the standard elisp variable
22609
c2ed862173da Style and doc fixes.
Karl Heuer <kwzh@gnu.org>
parents: 22552
diff changeset
531 `user-mail-address' which should be set on every system but has a decent
c2ed862173da Style and doc fixes.
Karl Heuer <kwzh@gnu.org>
parents: 22552
diff changeset
532 chance of being wrong. It also honors `mail-from-style'. Better to set
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
533 this variable explicitly to the string you want or find some other way
22801
e71025b5e000 Avoid using all-caps for non-arguments.
Karl Heuer <kwzh@gnu.org>
parents: 22800
diff changeset
534 to arrange for the message to get a From: line."
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
535 :group 'feedmail-headers
23222
dbd281c0a5bf (feedmail-from-line): Allow t.
Karl Heuer <kwzh@gnu.org>
parents: 22801
diff changeset
536 :type '(choice (const t) (const nil) string)
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
537 )
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
538
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
539
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
540 (defcustom feedmail-deduce-envelope-from t
22801
e71025b5e000 Avoid using all-caps for non-arguments.
Karl Heuer <kwzh@gnu.org>
parents: 22800
diff changeset
541 "*If non-nil, deduce message envelope \"from\" from header From: or Sender:.
e71025b5e000 Avoid using all-caps for non-arguments.
Karl Heuer <kwzh@gnu.org>
parents: 22800
diff changeset
542 In other words, if there is a Sender: header in the message, temporarily
22609
c2ed862173da Style and doc fixes.
Karl Heuer <kwzh@gnu.org>
parents: 22552
diff changeset
543 change the value of `user-mail-address' to be the same while the message
22801
e71025b5e000 Avoid using all-caps for non-arguments.
Karl Heuer <kwzh@gnu.org>
parents: 22800
diff changeset
544 is being sent. If there is no Sender: header, use the From: header,
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
545 if any. Address values are taken from the actual message just before
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
546 it is sent, and the process is independent of the values of
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
547 feedmail-from-line and/or feedmail-sender-line.
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
548
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
549 There are many and good reasons for having the message header
22801
e71025b5e000 Avoid using all-caps for non-arguments.
Karl Heuer <kwzh@gnu.org>
parents: 22800
diff changeset
550 From:/Sender: be different from the message envelope \"from\"
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
551 information. However, for most people and for most circumstances, it
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
552 is usual for them to be the same (this is probably especially true for
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
553 the case where the user doesn't understand the difference between the
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
554 two in the first place).
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
555
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
556 The idea behind this feature is that you can have everything set up
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
557 some normal way for yourself. If for some reason you want to send a
22801
e71025b5e000 Avoid using all-caps for non-arguments.
Karl Heuer <kwzh@gnu.org>
parents: 22800
diff changeset
558 message with another From: line, you can just type it at the top of
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
559 the message, and feedmail will take care of \"fixing up\" the envelope
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
560 \"from\". This only works for mail senders which make use of
22609
c2ed862173da Style and doc fixes.
Karl Heuer <kwzh@gnu.org>
parents: 22552
diff changeset
561 `user-mail-address' as the envelope \"from\" value. For some mail
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
562 senders (e.g., feedmail-buffer-to-bin-mail), there is no simple way to
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
563 influence what they will use as the envelope."
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
564 :group 'feedmail-headers
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
565 :type 'boolean
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
566 )
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
567
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
568
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
569 (defcustom feedmail-x-mailer-line-user-appendage nil
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
570 "*See feedmail-x-mailer-line."
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
571 :group 'feedmail-headers
23265
92177ff080cc (feedmail-x-mailer-line-user-appendage,
Andreas Schwab <schwab@suse.de>
parents: 23222
diff changeset
572 :type '(choice (const nil) (const t) string)
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
573 )
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
574
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
575
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
576 (defcustom feedmail-x-mailer-line t
22801
e71025b5e000 Avoid using all-caps for non-arguments.
Karl Heuer <kwzh@gnu.org>
parents: 22800
diff changeset
577 "*Control the form of an X-Mailer: header in an outgoing message.
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
578 Moderately useful for debugging, keeping track of your correspondents'
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
579 mailer preferences, or just wearing your MUA on your sleeve. You
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
580 should probably know that some people are fairly emotional about the
22801
e71025b5e000 Avoid using all-caps for non-arguments.
Karl Heuer <kwzh@gnu.org>
parents: 22800
diff changeset
581 presence of X-Mailer: lines in email.
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
582
22801
e71025b5e000 Avoid using all-caps for non-arguments.
Karl Heuer <kwzh@gnu.org>
parents: 22800
diff changeset
583 If nil, nothing is done about X-Mailer:.
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
584
22801
e71025b5e000 Avoid using all-caps for non-arguments.
Karl Heuer <kwzh@gnu.org>
parents: 22800
diff changeset
585 If t, an X-Mailer: header of a predetermined format is produced,
e71025b5e000 Avoid using all-caps for non-arguments.
Karl Heuer <kwzh@gnu.org>
parents: 22800
diff changeset
586 combining its efforts with any existing X-Mailer: header. If you want
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
587 to take the default construct and just add a little blob of your own
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
588 at the end, define the variable feedmail-x-mailer-line-user-appendage
22609
c2ed862173da Style and doc fixes.
Karl Heuer <kwzh@gnu.org>
parents: 22552
diff changeset
589 as that blob string. A value of t is equivalent to using the function
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
590 feedmail-default-x-mailer-generator.
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
591
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
592 If neither nil nor t, it may be a string, a fiddle-plex, or a function
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
593 which returns either nil, t, a string, or a fiddle-plex (or, in fact,
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
594 another function, but let's not be ridiculous). If a string, it
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
595 should be just the contents of the header, not the name of the header
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
596 itself nor the trailing newline. If a function, it will be called
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
597 with no arguments. For an explanation of fiddle-plexes, see the
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
598 documentation for the variable feedmail-fiddle-plex-blurb. In all
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
599 cases the name element of the fiddle-plex is ignored and is hardwired
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
600 by feedmail to either \"X-Mailer\" or \"X-Resent-Mailer\"."
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
601 :group 'feedmail-headers
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
602 :type '(choice (const t) (const nil) string function)
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
603 )
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
604
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
605
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
606 (defcustom feedmail-message-id-generator t
22801
e71025b5e000 Avoid using all-caps for non-arguments.
Karl Heuer <kwzh@gnu.org>
parents: 22800
diff changeset
607 "*Specifies the creation of a Message-Id: header field.
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
608
22801
e71025b5e000 Avoid using all-caps for non-arguments.
Karl Heuer <kwzh@gnu.org>
parents: 22800
diff changeset
609 If nil, nothing is done about Message-Id:.
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
610
22801
e71025b5e000 Avoid using all-caps for non-arguments.
Karl Heuer <kwzh@gnu.org>
parents: 22800
diff changeset
611 If t, a Message-Id: header of a predetermined format is produced, but
e71025b5e000 Avoid using all-caps for non-arguments.
Karl Heuer <kwzh@gnu.org>
parents: 22800
diff changeset
612 only if there is not already a Message-Id: in the message. A value of
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
613 t is equivalent to using the function feedmail-default-message-id-generator.
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
614
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
615 If neither nil nor t, it may be a string, a fiddle-plex, or a function
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
616 which returns either nil, t, a string, or a fiddle-plex (or, in fact,
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
617 another function, but let's not be ridiculous). If a string, it
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
618 should be just the contents of the header, not the name of the header
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
619 itself nor the trailing newline. If a function, it will be called
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
620 with one argument: the possibly-nil name of the file associated with
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
621 the message buffer. For an explanation of fiddle-plexes, see the
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
622 documentation for the variable feedmail-fiddle-plex-blurb. In all
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
623 cases the name element of the fiddle-plex is ignored and is hardwired
22801
e71025b5e000 Avoid using all-caps for non-arguments.
Karl Heuer <kwzh@gnu.org>
parents: 22800
diff changeset
624 by feedmail to either \"Message-Id\" or \"Resent-Message-Id\".
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
625
22801
e71025b5e000 Avoid using all-caps for non-arguments.
Karl Heuer <kwzh@gnu.org>
parents: 22800
diff changeset
626 You should let feedmail generate a Message-Id: for you unless you are sure
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
627 that whatever you give your messages to will do it for you (e.g., most
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
628 configurations of sendmail). Even if the latter case is true, it
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
629 probably won't hurt you to generate your own, and it will then show up
22801
e71025b5e000 Avoid using all-caps for non-arguments.
Karl Heuer <kwzh@gnu.org>
parents: 22800
diff changeset
630 in the saved message if you use Fcc:."
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
631 :group 'feedmail-headers
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
632 :type '(choice (const nil) function)
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
633 )
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
634
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
635
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
636 (defcustom feedmail-message-id-suffix nil
22609
c2ed862173da Style and doc fixes.
Karl Heuer <kwzh@gnu.org>
parents: 22552
diff changeset
637 "*If non-nil, used as a suffix for generating unique Message-Id: headers.
c2ed862173da Style and doc fixes.
Karl Heuer <kwzh@gnu.org>
parents: 22552
diff changeset
638 The function `feedmail-default-message-id-generator' creates its work based
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
639 on a formatted date-time string, a random number, and a domain-looking suffix.
22609
c2ed862173da Style and doc fixes.
Karl Heuer <kwzh@gnu.org>
parents: 22552
diff changeset
640 You can control the suffix used by assigning a string value to this variable.
c2ed862173da Style and doc fixes.
Karl Heuer <kwzh@gnu.org>
parents: 22552
diff changeset
641 If you don't supply one, the value of the variable `user-mail-address' will be
c2ed862173da Style and doc fixes.
Karl Heuer <kwzh@gnu.org>
parents: 22552
diff changeset
642 used. If the value of `feedmail-message-id-suffix' contains an \"@\" character,
c2ed862173da Style and doc fixes.
Karl Heuer <kwzh@gnu.org>
parents: 22552
diff changeset
643 the string will be used verbatim, else an \"@\" character will be prepended
c2ed862173da Style and doc fixes.
Karl Heuer <kwzh@gnu.org>
parents: 22552
diff changeset
644 automatically."
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
645 :group 'feedmail-headers
23222
dbd281c0a5bf (feedmail-from-line): Allow t.
Karl Heuer <kwzh@gnu.org>
parents: 22801
diff changeset
646 :type '(choice (const nil) string)
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
647 )
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
648
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
649 ;; this was suggested in various forms by several people; first was
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
650 ;; Tony DeSimone in Oct 1992; sorry to be so tardy
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
651 (defcustom feedmail-date-generator t
22801
e71025b5e000 Avoid using all-caps for non-arguments.
Karl Heuer <kwzh@gnu.org>
parents: 22800
diff changeset
652 "*Specifies the creation of a Date: header field.
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
653
22801
e71025b5e000 Avoid using all-caps for non-arguments.
Karl Heuer <kwzh@gnu.org>
parents: 22800
diff changeset
654 If nil, nothing is done about Date:.
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
655
22801
e71025b5e000 Avoid using all-caps for non-arguments.
Karl Heuer <kwzh@gnu.org>
parents: 22800
diff changeset
656 If t, a Date: header of a predetermined format is produced, but only
e71025b5e000 Avoid using all-caps for non-arguments.
Karl Heuer <kwzh@gnu.org>
parents: 22800
diff changeset
657 if there is not already a Date: in the message. A value of t is
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
658 equivalent to using the function feedmail-default-date-generator.
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
659
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
660 If neither nil nor t, it may be a string, a fiddle-plex, or a function
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
661 which returns either nil, t, a string, or a fiddle-plex (or, in fact,
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
662 another function, but let's not be ridiculous). If a string, it
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
663 should be just the contents of the header, not the name of the header
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
664 itself nor the trailing newline. If a function, it will be called
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
665 with one argument: the possibly-nil name of the file associated with
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
666 the message buffer. For an explanation of fiddle-plexes, see the
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
667 documentation for the variable feedmail-fiddle-plex-blurb. In all
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
668 cases the name element of the fiddle-plex is ignored and is hardwired
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
669 by feedmail to either \"Date\" or \"Resent-Date\".
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
670
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
671 If you decide to format your own date field, do us all a favor and know
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
672 what you're doing. Study the relevant parts of RFC-822 and RFC-1123.
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
673 Don't make me come up there!
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
674
22801
e71025b5e000 Avoid using all-caps for non-arguments.
Karl Heuer <kwzh@gnu.org>
parents: 22800
diff changeset
675 You should let feedmail generate a Date: for you unless you are sure
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
676 that whatever you give your messages to will do it for you (e.g., most
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
677 configurations of sendmail). Even if the latter case is true, it
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
678 probably won't hurt you to generate your own, and it will then show up
22801
e71025b5e000 Avoid using all-caps for non-arguments.
Karl Heuer <kwzh@gnu.org>
parents: 22800
diff changeset
679 in the saved message if you use Fcc:."
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
680 :group 'feedmail-headers
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
681 :type '(choice (const nil) function)
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
682 )
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
683
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
684
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
685 (defcustom feedmail-fiddle-headers-upwardly t
22609
c2ed862173da Style and doc fixes.
Karl Heuer <kwzh@gnu.org>
parents: 22552
diff changeset
686 "*Non-nil means fiddled header fields should go at the top of the header.
42206
0f4506820432 Doc fix.
Pavel Janík <Pavel@Janik.cz>
parents: 41608
diff changeset
687 nil means insert them at the bottom. This is mostly a novelty issue since
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
688 the standards define the ordering of header fields to be immaterial and it's
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
689 fairly likely that some MTA along the way will have its own idea of what the
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
690 order should be, regardless of what you specify."
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
691 :group 'feedmail-header
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
692 :type 'boolean
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
693 )
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
694
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
695
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
696 (defcustom feedmail-fiddle-plex-user-list nil
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
697 "If non-nil, should be a list of one or more fiddle-plexes.
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
698 Each element of the list can also be a function which returns a
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
699 fiddle-plex.
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
700
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
701 feedmail will use this list of fiddle-plexes to manipulate user-specified
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
702 message header fields. It does this after it has completed all normal
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
703 message header field manipulation and before calling feedmail-last-chance-hook.
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
704
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
705 For an explanation of fiddle-plexes, see the documentation for the
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
706 variable feedmail-fiddle-plex-blurb. In contrast to some other fiddle-plex
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
707 manipulation functions, in this context, it makes no sense to have an element
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
708 which is nil, t, or a simple string."
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
709 :group 'feedmail-header
23265
92177ff080cc (feedmail-x-mailer-line-user-appendage,
Andreas Schwab <schwab@suse.de>
parents: 23222
diff changeset
710 :type '(repeat (choice function)
92177ff080cc (feedmail-x-mailer-line-user-appendage,
Andreas Schwab <schwab@suse.de>
parents: 23222
diff changeset
711 sexp) ; too complex to be described accurately
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
712 )
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
713
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
714
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
715 (defcustom feedmail-enable-spray nil
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
716 "If non-nil, transmit message separately to each addressee.
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
717 feedmail normally accumulates a list of addressees and passes the message
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
718 along with that list to a buffer-eating function which expects any number
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
719 of addressees. If this variable is non-nil, however, feedmail will
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
720 repeatedly call the same buffer-eating function. Each time, the list of
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
721 addressees will be just one item from the original list. This only affects
22609
c2ed862173da Style and doc fixes.
Karl Heuer <kwzh@gnu.org>
parents: 22552
diff changeset
722 the message envelope addresses and doesn't affect what appears in the
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
723 message headers except as noted.
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
724
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
725 Spray mode is usually pointless, and if you can't think of a good reason for
22609
c2ed862173da Style and doc fixes.
Karl Heuer <kwzh@gnu.org>
parents: 22552
diff changeset
726 it, you should avoid it since it is inherently less efficient than normal
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
727 multiple delivery. One reason to use it is to overcome mis-featured mail
22801
e71025b5e000 Avoid using all-caps for non-arguments.
Karl Heuer <kwzh@gnu.org>
parents: 22800
diff changeset
728 transports which betray your trust by revealing Bcc: addressees in the
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
729 headers of a message. Another use is to do a crude form of mailmerge, for
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
730 which see feedmail-spray-address-fiddle-plex-list.
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
731
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
732 If one of the calls to the buffer-eating function results in an error,
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
733 what happens next is carelessly defined, so beware."
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
734 :group 'feedmail-spray
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
735 :type 'boolean
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
736 )
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
737
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
738 (defvar feedmail-spray-this-address nil
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
739 "Do not set or change this variable. See feedmail-spray-address-fiddle-plex-list.")
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
740
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
741 (defcustom feedmail-spray-address-fiddle-plex-list nil
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
742 "User-supplied specification for a crude form of mailmerge capability.
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
743 When spraying is enabled, feedmail composes a list of envelope addresses.
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
744 In turn, feedmail-spray-this-address is temporarily set to each address
22609
c2ed862173da Style and doc fixes.
Karl Heuer <kwzh@gnu.org>
parents: 22552
diff changeset
745 \(stripped of any comments and angle brackets\) and calls a function which
c2ed862173da Style and doc fixes.
Karl Heuer <kwzh@gnu.org>
parents: 22552
diff changeset
746 fiddles message headers according to this variable. See the documentation for
c2ed862173da Style and doc fixes.
Karl Heuer <kwzh@gnu.org>
parents: 22552
diff changeset
747 `feedmail-fiddle-plex-blurb', for an overview of fiddle-plex data structures.
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
748
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
749 May be nil, in which case nothing in particular is done about message
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
750 headers for specific addresses.
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
751
22801
e71025b5e000 Avoid using all-caps for non-arguments.
Karl Heuer <kwzh@gnu.org>
parents: 22800
diff changeset
752 May be t, in which case a \"To:\" header is added to the message with
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
753 the stripped address as the header contents. The fiddle-plex operator
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
754 is 'supplement.
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
755
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
756 May be a string, in which case the string is assumed to be the name of
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
757 a message header field with the stripped address serving as the value.
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
758 The fiddle-plex operator is 'supplement.
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
759
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
760 May be a function, in which case it is called with no arguments and is
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
761 expected to return nil, t, a string, another function, or a fiddle-plex.
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
762 The result is used recursively.
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
763
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
764 May be a list of any combination of the foregoing and fiddle-plexes. (A
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
765 value for this variable which consists of a single fiddle-plex must be
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
766 nested inside another list to avoid ambiguity.) If a list, each item
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
767 is acted on in turn as described above.
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
768
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
769 For example,
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
770
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
771 (setq feedmail-spray-address-fiddle-plex-list 'my-address-embellisher)
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
772
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
773 The idea of the example is that, during spray mode, as each message is
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
774 about to be transmitted to an individual address, the function will be
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
775 called and will consult feedmail-spray-this-address to find the
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
776 stripped envelope email address (no comments or angle brackets). The
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
777 function should return an embellished form of the address.
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
778
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
779 The recipe for sending form letters is: (1) create a message with all
22801
e71025b5e000 Avoid using all-caps for non-arguments.
Karl Heuer <kwzh@gnu.org>
parents: 22800
diff changeset
780 addressees on Bcc: headers; (2) tell feedmail to remove Bcc: headers
22609
c2ed862173da Style and doc fixes.
Karl Heuer <kwzh@gnu.org>
parents: 22552
diff changeset
781 before sending the message; (3) create a function which will embellish
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
782 stripped addresses, if desired; (4) define feedmail-spray-address-fiddle-plex-list
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
783 appropriately; (5) send the message with feedmail-enable-spray set
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
784 non-nil; (6) stand back and watch co-workers wonder at how efficient
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
785 you are at accomplishing inherently inefficient things."
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
786 :group 'feedmail-spray
23265
92177ff080cc (feedmail-x-mailer-line-user-appendage,
Andreas Schwab <schwab@suse.de>
parents: 23222
diff changeset
787 :type 'sexp ; too complex to be described accurately
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
788 )
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
789
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
790
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
791 (defcustom feedmail-enable-queue nil
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
792 "*If non-nil, provide for stashing outgoing messages in a queue.
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
793 This is the master on/off switch for feedmail message queuing.
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
794 Queuing is quite handy for laptop-based users. It's also handy if you
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
795 get a lot of mail and process it more or less sequentially. For
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
796 example, you might change your mind about contents of a reply based on
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
797 a message you see a bit later.
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
798
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
799 There is a separate queue for draft messages, intended to prevent
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
800 you from accidentally sending incomplete messages. The queues are
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
801 disk-based and intended for later transmission. The messages are
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
802 queued in their raw state as they appear in the mail-mode buffer and
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
803 can be arbitrarily edited later, before sending, by visiting the
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
804 appropriate file in the queue directory (and setting the buffer to
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
805 mail-mode or whatever). If you visit a file in the queue directory
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
806 and try to queue it again, it will just get saved in its existing file
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
807 name. You can move a message from the draft to the main queue or vice
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
808 versa by pretending to send it and then selecting whichever queue
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
809 directory you want at the prompt. The right thing will happen.
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
810
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
811 To transmit all the messages in the queue, invoke the command
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
812 feedmail-run-the-queue or feedmail-run-the-queue-no-prompts."
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
813 :group 'feedmail-queue
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
814 :type 'boolean
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
815 )
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
816
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
817
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
818 (defcustom feedmail-queue-runner-confirm-global nil
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
819 "*If non-nil, give a y-or-n confirmation prompt before running the queue.
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
820 Prompt even if the queue is about to be processed as a result of a call to
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
821 feedmail-run-the-queue-no-prompts. This gives you a way to bail out
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
822 without having to answer no to the individual message prompts."
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
823 :group 'feedmail-queue
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
824 :type 'boolean)
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
825
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
826
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
827 ;; I provided a default for VMS because someone asked for it (the
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
828 ;; normal default doesn't work there), but, puh-lease!, it is a user
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
829 ;; definable option, so if you don't like the default, change it to
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
830 ;; whatever you want. I am unable to directly test the VMS goop
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
831 ;; provided here by levitte@lp.se (Richard Levitte - VMS Whacker).
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
832 (defcustom feedmail-queue-directory
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
833 (if (memq system-type '(axp-vms vax-vms))
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
834 (expand-file-name (concat (getenv "HOME") "[.MAIL.Q]"))
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
835 (concat (getenv "HOME") "/mail/q"))
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
836 "*Name of a directory where messages will be queued.
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
837 Directory will be created if necessary. Should be a string that
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
838 doesn't end with a slash. Default, except on VMS, is \"$HOME/mail/q\"."
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
839 :group 'feedmail-queue
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
840 :type 'string
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
841 )
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
842
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
843
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
844 (defcustom feedmail-queue-draft-directory
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
845 (if (memq system-type '(axp-vms vax-vms))
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
846 (expand-file-name (concat (getenv "HOME") "[.MAIL.DRAFT]"))
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
847 (concat (getenv "HOME") "/mail/draft"))
22801
e71025b5e000 Avoid using all-caps for non-arguments.
Karl Heuer <kwzh@gnu.org>
parents: 22800
diff changeset
848 "*Name of an directory where draft messages will be queued.
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
849 Directory will be created if necessary. Should be a string that
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
850 doesn't end with a slash. Default, except on VMS, is \"$HOME/mail/draft\"."
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
851 :group 'feedmail-queue
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
852 :type 'string
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
853 )
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
854
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
855
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
856 (defcustom feedmail-ask-before-queue t
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
857 "*If non-nil, feedmail will ask what you want to do with the message.
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
858 Default choices for the message action prompt will include sending it
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
859 immediately, putting it in the main queue, putting it in the draft
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
860 queue, or returning to the buffer to continue editing. Only matters if
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
861 queuing is enabled. If nil, the message is placed in the main queue
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
862 without a prompt."
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
863 :group 'feedmail-queue
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
864 :type 'boolean
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
865 )
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
866
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
867
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
868 (defcustom feedmail-ask-before-queue-prompt "FQM: Message action (q, i, d, e, ?)? [%s]: "
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
869 "*A string which will be used for the message action prompt.
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
870 If it contains a \"%s\", that will be replaced with the value of
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
871 feedmail-ask-before-queue-default."
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
872 :group 'feedmail-queue
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
873 :type 'string
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
874 )
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
875
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
876
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
877 (defcustom feedmail-ask-before-queue-reprompt "FQM: Please type q, i, d, or e; or ? for help [%s]: "
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
878 "*A string which will be used for repompting after invalid input.
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
879 If it contains a \"%s\", that will be replaced with the value of
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
880 feedmail-ask-before-queue-default."
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
881 :group 'feedmail-queue
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
882 :type 'string
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
883 )
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
884
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
885
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
886 (defcustom feedmail-ask-before-queue-default "queue"
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
887 "*Meaning if user hits return in response to the message action prompt.
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
888 Should be a character or a string; if a string, only the first
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
889 character is significant. Useful values are those described in
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
890 the help for the message action prompt."
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
891 :group 'feedmail-queue
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
892 :type '(choice string integer) ;use integer to get char
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
893 )
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
894
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
895
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
896 (defvar feedmail-prompt-before-queue-standard-alist
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
897 '((?q . feedmail-message-action-queue)
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
898 (?Q . feedmail-message-action-queue-strong)
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
899
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
900 (?d . feedmail-message-action-draft)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
901 (?r . feedmail-message-action-draft)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
902 (?D . feedmail-message-action-draft-strong)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
903 (?R . feedmail-message-action-draft-strong)
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
904
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
905 (?e . feedmail-message-action-edit)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
906 (?E . feedmail-message-action-edit)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
907 (?\C-g . feedmail-message-action-edit)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
908 (?n . feedmail-message-action-edit)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
909 (?N . feedmail-message-action-edit)
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
910
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
911 (?i . feedmail-message-action-send)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
912 (?I . feedmail-message-action-send-strong)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
913 (?s . feedmail-message-action-send)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
914 (?S . feedmail-message-action-send-strong)
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
915
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
916 (?* . feedmail-message-action-toggle-spray)
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
917
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
918 (?\C-v . feedmail-message-action-help)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
919 (?? . feedmail-message-action-help))
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
920 "An alist of choices for the message action prompt.
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
921 All of the values are function names, except help, which is a special
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
922 symbol that calls up help for the prompt (the help describes the
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
923 actions from the standard alist). To customize your own choices,
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
924 define a similar alist called feedmail-prompt-before-queue-user-alist.
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
925 The actual alist used for message action will be the standard alist
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
926 overlaid with the user-alist. To neutralize an item in the standard
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
927 alist without providing a replacement, define an appropriate element
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
928 in the user alist with a value of nil." )
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
929
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
930
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
931 (defcustom feedmail-prompt-before-queue-user-alist nil
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
932 "See feedmail-prompt-before-queue-standard-alist."
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
933 :group 'feedmail-queue
23265
92177ff080cc (feedmail-x-mailer-line-user-appendage,
Andreas Schwab <schwab@suse.de>
parents: 23222
diff changeset
934 :type '(repeat (cons character function))
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
935 )
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
936
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
937
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
938 (defcustom feedmail-prompt-before-queue-help-supplement nil
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
939 "User-provided supplementary help string for the message action prompt.
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
940 When the message action prompt is shown, the user can as for verbose help,
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
941 at which point a buffer pops up describing the meaning of possible
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
942 responses to the prompt. Through various customizations (see, for
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
943 example, feedmail-prompt-before-queue-user-alist), the available responses
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
944 and the prompt itself can be changed. If this variable is set to a string
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
945 value, that string is written to the help buffer after the standard info.
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
946 It may contain embedded line breaks. It will be printed via princ."
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
947 :group 'feedmail-queue
23265
92177ff080cc (feedmail-x-mailer-line-user-appendage,
Andreas Schwab <schwab@suse.de>
parents: 23222
diff changeset
948 :type '(choice (const nil) string)
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
949 )
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
950
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
951
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
952 (defcustom feedmail-queue-reminder-alist
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
953 '((after-immediate . feedmail-queue-reminder-brief)
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
954 (after-queue . feedmail-queue-reminder-medium)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
955 (after-draft . feedmail-queue-reminder-medium)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
956 (after-run . feedmail-queue-reminder-brief)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
957 (on-demand . feedmail-run-the-queue-global-prompt))
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
958 "See feedmail-queue-reminder."
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
959 :group 'feedmail-queue
23265
92177ff080cc (feedmail-x-mailer-line-user-appendage,
Andreas Schwab <schwab@suse.de>
parents: 23222
diff changeset
960 :type '(repeat (cons (choice :tag "Event"
92177ff080cc (feedmail-x-mailer-line-user-appendage,
Andreas Schwab <schwab@suse.de>
parents: 23222
diff changeset
961 (const on-demand)
92177ff080cc (feedmail-x-mailer-line-user-appendage,
Andreas Schwab <schwab@suse.de>
parents: 23222
diff changeset
962 (const after-immediate)
92177ff080cc (feedmail-x-mailer-line-user-appendage,
Andreas Schwab <schwab@suse.de>
parents: 23222
diff changeset
963 (const after-queue)
92177ff080cc (feedmail-x-mailer-line-user-appendage,
Andreas Schwab <schwab@suse.de>
parents: 23222
diff changeset
964 (const after-draft)
92177ff080cc (feedmail-x-mailer-line-user-appendage,
Andreas Schwab <schwab@suse.de>
parents: 23222
diff changeset
965 (const after-run))
92177ff080cc (feedmail-x-mailer-line-user-appendage,
Andreas Schwab <schwab@suse.de>
parents: 23222
diff changeset
966 function))
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
967 )
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
968
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
969
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
970 (defcustom feedmail-queue-chatty t
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
971 "*If non-nil, blat a few status messages and such in the mini-buffer.
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
972 If nil, just do the work and don't pester people about what's going on.
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
973 In some cases, though, specific options inspire mini-buffer prompting.
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
974 That's not affected by this variable setting. Also does not control
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
975 reporting of error/abnormal conditions."
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
976 :group 'feedmail-queue
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
977 :type 'boolean
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
978 )
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
979
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
980
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
981 (defcustom feedmail-queue-chatty-sit-for 2
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
982 "*Duration of pause after most queue-related messages.
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
983 After some messages are divulged, it is prudent to pause before
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
984 something else obliterates them. This value controls the duration of
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
985 the pause."
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
986 :group 'feedmail-queue
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
987 :type 'integer
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
988 )
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
989
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
990
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
991 (defcustom feedmail-queue-run-orderer nil
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
992 "*If non-nil, name a function which will sort the queued messages.
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
993 The function is called during a running of the queue for sending, and
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
994 takes one argument, a list of the files in the queue directory. It
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
995 may contain the names of non-message files, and it's okay to leave
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
996 them in the list when reordering it; they get skipped over later.
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
997 When nil, the default action processes the messages in normal sort
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
998 order by queued file name, which will typically result in the order
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
999 they were placed in the queue."
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1000 :group 'feedmail-queue
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1001 :type '(choice (const nil) function)
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1002 )
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1003
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1004
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1005 (defcustom feedmail-queue-use-send-time-for-date nil
22801
e71025b5e000 Avoid using all-caps for non-arguments.
Karl Heuer <kwzh@gnu.org>
parents: 22800
diff changeset
1006 "*If non-nil, use send time for the Date: header value.
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1007 This variable is used by the default date generating function,
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1008 feedmail-default-date-generator. If nil, the default, the
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1009 last-modified timestamp of the queue file is used to create the
22801
e71025b5e000 Avoid using all-caps for non-arguments.
Karl Heuer <kwzh@gnu.org>
parents: 22800
diff changeset
1010 message Date: header; if there is no queue file, the current time is
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1011 used."
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1012 :group 'feedmail-queue
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1013 :type 'boolean
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1014 )
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1015
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1016
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1017 (defcustom feedmail-queue-use-send-time-for-message-id nil
22801
e71025b5e000 Avoid using all-caps for non-arguments.
Karl Heuer <kwzh@gnu.org>
parents: 22800
diff changeset
1018 "*If non-nil, use send time for the Message-Id: header value.
e71025b5e000 Avoid using all-caps for non-arguments.
Karl Heuer <kwzh@gnu.org>
parents: 22800
diff changeset
1019 This variable is used by the default Message-Id: generating function,
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1020 feedmail-default-message-id-generator. If nil, the default, the
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1021 last-modified timestamp of the queue file is used to create the
22801
e71025b5e000 Avoid using all-caps for non-arguments.
Karl Heuer <kwzh@gnu.org>
parents: 22800
diff changeset
1022 message Message-Id: header; if there is no queue file, the current time is
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1023 used."
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1024 :group 'feedmail-queue
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1025 :type 'boolean
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1026 )
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1027
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1028
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1029 (defcustom feedmail-ask-for-queue-slug nil
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1030 "*If non-nil, prompt user for part of the queue file name.
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1031 The file will automatically get the FQM suffix and an embedded
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1032 sequence number for uniqueness, so don't specify that. feedmail will
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1033 get rid of all characters other than alphanumeric and hyphen in the
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1034 results. If this variable is nil or if you just hit return in
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1035 response to the prompt, feedmail queuing will take care of things
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1036 properly. At the prompt, completion is available if you want to see
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1037 what filenames are already in use, though, as noted, you will not be
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1038 typing a complete file name. You probably don't want to be bothered
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1039 with this prompting since feedmail, by default, uses queue file names
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1040 based on the subjects of the messages."
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1041 :group 'feedmail-queue
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1042 :type 'boolean
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1043 )
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1044
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1045
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1046 (defcustom feedmail-queue-slug-maker 'feedmail-queue-subject-slug-maker
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1047 "*If non-nil, a function which creates part of the queued file name.
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1048 Takes a single argument giving the name of the directory into
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1049 which the message will be queued. The returned string should be just
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1050 the non-directory filename part, without FQM suffix or uniquifying
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1051 sequence numbers. The current buffer holds the raw message. The
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1052 default function creates the slug based on the message subject, if
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1053 any."
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1054 :group 'feedmail-queue
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1055 :type '(choice (const nil) function)
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1056 )
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1057
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1058
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1059 (defcustom feedmail-queue-default-file-slug t
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1060 "*Indicates what to use for subject-less messages when forming a file name.
22609
c2ed862173da Style and doc fixes.
Karl Heuer <kwzh@gnu.org>
parents: 22552
diff changeset
1061 When feedmail queues a message, it creates a unique file name. By default,
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1062 the file name is based in part on the subject of the message being queued.
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1063 If there is no subject, consult this variable. See documentation for the
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1064 function feedmail-queue-subject-slug-maker.
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1065
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1066 If t, an innocuous default is used.
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1067
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1068 If a string, it is used directly.
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1069
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1070 If a function, it is called with no arguments from the buffer containing the raw
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1071 text of the message. It must return a string (which may be empty).
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1072
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1073 If the symbol 'ask, you will be prompted for a string in the mini-buffer.
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1074 Filename completion is available so that you can inspect what's already been
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1075 used, but feedmail will do further manipulation on the string you return, so
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1076 it's not expected to be a complete filename."
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1077 :group 'feedmail-queue
23265
92177ff080cc (feedmail-x-mailer-line-user-appendage,
Andreas Schwab <schwab@suse.de>
parents: 23222
diff changeset
1078 :type '(choice (const :tag "Default" t) string function (const ask))
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1079 )
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1080
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1081
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1082 (defcustom feedmail-queue-fqm-suffix ".fqm"
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1083 "*The FQM suffix used to distinguish feedmail queued message files.
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1084 You probably want this to be a period followed by some letters and/or
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1085 digits. The distinction is to be able to tell them from other random
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1086 files that happen to be in the feedmail-queue-directory or
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1087 feedmail-queue-draft-directory. By the way, FQM stands for feedmail
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1088 queued message."
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1089 :group 'feedmail-queue
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1090 :type 'string
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1091 )
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1092
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1093
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1094 (defcustom feedmail-nuke-buffer-after-queue nil
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1095 "*If non-nil, silently kill the buffer after a message is queued.
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1096 You might like that since a side-effect of queueing the message is
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1097 that its buffer name gets changed to the filename. That means that
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1098 the buffer won't be reused for the next message you compose. If you
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1099 are using VM for creating messages, you probably want to leave this
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1100 nil, since VM has its own options for managing the recycling of
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1101 message buffers."
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1102 :group 'feedmail-queue
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1103 :type 'boolean
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1104 )
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1105
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1106
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1107 (defcustom feedmail-queue-auto-file-nuke nil
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1108 "*If non-nil, automatically delete queue files when a message is sent.
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1109 Normally, feedmail will notice such files when you send a message in
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1110 immediate mode (i.e., not when you're running the queue) and will ask if
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1111 you want to delete them. Since the answer is usually yes, setting this
22609
c2ed862173da Style and doc fixes.
Karl Heuer <kwzh@gnu.org>
parents: 22552
diff changeset
1112 variable to non-nil will tell feedmail to skip the prompt and just delete
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1113 the file without bothering you."
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1114 :group 'feedmail-queue
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1115 :type 'boolean
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1116 )
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1117
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1118
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1119 ;; defvars to make byte-compiler happy(er)
22609
c2ed862173da Style and doc fixes.
Karl Heuer <kwzh@gnu.org>
parents: 22552
diff changeset
1120 (defvar feedmail-error-buffer nil)
c2ed862173da Style and doc fixes.
Karl Heuer <kwzh@gnu.org>
parents: 22552
diff changeset
1121 (defvar feedmail-prepped-text-buffer nil)
c2ed862173da Style and doc fixes.
Karl Heuer <kwzh@gnu.org>
parents: 22552
diff changeset
1122 (defvar feedmail-raw-text-buffer nil)
c2ed862173da Style and doc fixes.
Karl Heuer <kwzh@gnu.org>
parents: 22552
diff changeset
1123 (defvar feedmail-address-list nil)
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1124
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1125
23409
b9c1f9b1dac9 (feedmail-queue-runner-is-active): Definition moved.
Richard M. Stallman <rms@gnu.org>
parents: 23265
diff changeset
1126 (defvar feedmail-queue-runner-is-active nil
b9c1f9b1dac9 (feedmail-queue-runner-is-active): Definition moved.
Richard M. Stallman <rms@gnu.org>
parents: 23265
diff changeset
1127 "*Non-nil means we're inside the logic of the queue-running loop.
b9c1f9b1dac9 (feedmail-queue-runner-is-active): Definition moved.
Richard M. Stallman <rms@gnu.org>
parents: 23265
diff changeset
1128 That is, iterating over all messages in the queue to send them. In
b9c1f9b1dac9 (feedmail-queue-runner-is-active): Definition moved.
Richard M. Stallman <rms@gnu.org>
parents: 23265
diff changeset
1129 that case, the value is the name of the queued message file currently
b9c1f9b1dac9 (feedmail-queue-runner-is-active): Definition moved.
Richard M. Stallman <rms@gnu.org>
parents: 23265
diff changeset
1130 being processed. This can be used for differentiating customized code
b9c1f9b1dac9 (feedmail-queue-runner-is-active): Definition moved.
Richard M. Stallman <rms@gnu.org>
parents: 23265
diff changeset
1131 for different scenarios. Users shouldn't set or change this
b9c1f9b1dac9 (feedmail-queue-runner-is-active): Definition moved.
Richard M. Stallman <rms@gnu.org>
parents: 23265
diff changeset
1132 variable, but may depend on its value as described here.")
b9c1f9b1dac9 (feedmail-queue-runner-is-active): Definition moved.
Richard M. Stallman <rms@gnu.org>
parents: 23265
diff changeset
1133
b9c1f9b1dac9 (feedmail-queue-runner-is-active): Definition moved.
Richard M. Stallman <rms@gnu.org>
parents: 23265
diff changeset
1134
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1135 (defun feedmail-mail-send-hook-splitter ()
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1136 "Facilitate dividing mail-send-hook things into queued and immediate cases.
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1137 If you have mail-send-hook functions that should only be called for sending/
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1138 queueing messages or only be called for the sending of queued messages, this is
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1139 for you. Add this function to mail-send-hook with something like this:
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1140
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1141 (add-hook 'mail-send-hook 'feedmail-mail-send-hook-splitter)
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1142
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1143 Then add the functions you want called to either feedmail-mail-send-hook-queued
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1144 or feedmail-mail-send-hook, as apprpriate. The distinction is that
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1145 feedmail-mail-send-hook will be called when you send mail from a composition
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1146 buffer (typically by typing C-c C-c), whether the message is sent immediately
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1147 or placed in the queue or drafts directory. feedmail-mail-send-hook-queued is
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1148 called when messages are being sent from the queue directory, typically via a
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1149 call to feedmail-run-the-queue."
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1150 (if feedmail-queue-runner-is-active
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1151 (run-hooks 'feedmail-mail-send-hook-queued)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1152 (run-hooks 'feedmail-mail-send-hook))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1153 )
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1154
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1155
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1156 (defvar feedmail-mail-send-hook nil
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1157 "*See documentation for feedmail-mail-send-hook-splitter.")
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1158
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1159
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1160 (defvar feedmail-mail-send-hook-queued nil
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1161 "*See documentation for feedmail-mail-send-hook-splitter.")
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1162
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1163
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1164 (defun feedmail-confirm-addresses-hook-example ()
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1165 "An example of a feedmail-last-chance-hook.
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1166 It shows the simple addresses and gets a confirmation. Use as:
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1167 (setq feedmail-last-chance-hook 'feedmail-confirm-addresses-hook-example)."
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1168 (save-window-excursion
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1169 (display-buffer (set-buffer (get-buffer-create " F-C-A-H-E")))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1170 (erase-buffer)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1171 (insert (mapconcat 'identity feedmail-address-list " "))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1172 (if (not (y-or-n-p "How do you like them apples? "))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1173 (error "FQM: Sending...gave up in last chance hook")
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1174 )))
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1175
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1176
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1177 (defcustom feedmail-last-chance-hook nil
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1178 "*User's last opportunity to modify the message on its way out.
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1179 It has already had all the header prepping from the standard package.
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1180 The next step after running the hook will be to push the buffer into a
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1181 subprocess that mails the mail. The hook might be interested in
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1182 these: (1) feedmail-prepped-text-buffer contains the header and body
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1183 of the message, ready to go; (2) feedmail-address-list contains a list
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1184 of simplified recipients of addresses which are to be given to the
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1185 subprocess (the hook may change the list); (3) feedmail-error-buffer
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1186 is an empty buffer intended to soak up errors for display to the user.
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1187 If the hook allows interactive activity, the user should not send more
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1188 mail while in the hook since some of the internal buffers will be
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1189 reused and things will get confused."
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1190 :group 'feedmail-misc
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1191 :type 'hook
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1192 )
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1193
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1194
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1195 (defcustom feedmail-before-fcc-hook nil
22801
e71025b5e000 Avoid using all-caps for non-arguments.
Karl Heuer <kwzh@gnu.org>
parents: 22800
diff changeset
1196 "*User's last opportunity to modify the message before Fcc action.
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1197 It has already had all the header prepping from the standard package.
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1198 The next step after running the hook will be to save the message via
22801
e71025b5e000 Avoid using all-caps for non-arguments.
Karl Heuer <kwzh@gnu.org>
parents: 22800
diff changeset
1199 Fcc: processing. The hook might be interested in these: (1)
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1200 feedmail-prepped-text-buffer contains the header and body of the
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1201 message, ready to go; (2) feedmail-address-list contains a list of
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1202 simplified recipients of addressees to whom the message was sent (3)
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1203 feedmail-error-buffer is an empty buffer intended to soak up errors
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1204 for display to the user. If the hook allows interactive activity, the
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1205 user should not send more mail while in the hook since some of the
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1206 internal buffers will be reused and things will get confused."
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1207 :group 'feedmail-misc
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1208 :type 'hook
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1209 )
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1210
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1211 (defcustom feedmail-queue-runner-mode-setter
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1212 '(lambda (&optional arg) (mail-mode))
22609
c2ed862173da Style and doc fixes.
Karl Heuer <kwzh@gnu.org>
parents: 22552
diff changeset
1213 "*A function to set the proper mode of a message file.
c2ed862173da Style and doc fixes.
Karl Heuer <kwzh@gnu.org>
parents: 22552
diff changeset
1214 Called when the message is read back out of the queue directory with a single
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1215 argument, the optional argument used in the call to
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1216 feedmail-run-the-queue or feedmail-run-the-queue-no-prompts.
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1217
22609
c2ed862173da Style and doc fixes.
Karl Heuer <kwzh@gnu.org>
parents: 22552
diff changeset
1218 Most people want `mail-mode', so the default value is an anonymous
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1219 function which is just a wrapper to ignore the supplied argument when
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1220 calling it, but here's your chance to have something different.
22609
c2ed862173da Style and doc fixes.
Karl Heuer <kwzh@gnu.org>
parents: 22552
diff changeset
1221 Called with funcall, not `call-interactively'."
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1222 :group 'feedmail-queue
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1223 :type 'function
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1224 )
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1225
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1226
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1227 (defcustom feedmail-queue-alternative-mail-header-separator nil
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1228 "*Alternative header demarcation for queued messages.
22609
c2ed862173da Style and doc fixes.
Karl Heuer <kwzh@gnu.org>
parents: 22552
diff changeset
1229 If you sometimes get alternative values for `mail-header-separator' in
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1230 queued messages, set the value of this variable to whatever it is.
22609
c2ed862173da Style and doc fixes.
Karl Heuer <kwzh@gnu.org>
parents: 22552
diff changeset
1231 For example, `rmail-resend' uses a `mail-header-separator' value of empty
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1232 string (\"\") when you send/queue a message.
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1233
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1234 When trying to send a queued message, if the value of this variable is
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1235 non-nil, feedmail will first try to send the message using the value
22609
c2ed862173da Style and doc fixes.
Karl Heuer <kwzh@gnu.org>
parents: 22552
diff changeset
1236 of `mail-header-separator'. If it can't find that, it will temporarily
c2ed862173da Style and doc fixes.
Karl Heuer <kwzh@gnu.org>
parents: 22552
diff changeset
1237 set `mail-header-separator' to the value of
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1238 feedmail-queue-alternative-mail-header-separator and try again."
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1239 :group 'feedmail-queue
23265
92177ff080cc (feedmail-x-mailer-line-user-appendage,
Andreas Schwab <schwab@suse.de>
parents: 23222
diff changeset
1240 :type '(choice (const nil) string)
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1241 )
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1242
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1243
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1244 (defcustom feedmail-queue-runner-message-sender 'mail-send-and-exit
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1245 "*Function to initiate sending a message file.
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1246 Called for each message read back out of the queue directory with a
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1247 single argument, the optional argument used in the call to
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1248 feedmail-run-the-queue or feedmail-run-the-queue-no-prompts.
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1249 Interactively, that argument will be the prefix argument. Most people
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1250 want mail-send-and-exit (bound to C-c C-c in mail-mode), but here's
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1251 your chance to have something different. Called with funcall, not
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1252 call-interactively."
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1253 :group 'feedmail-queue
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1254 :type 'function
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1255 )
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1256
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1257
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1258 (defcustom feedmail-queue-runner-cleaner-upper
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1259 '(lambda (fqm-file &optional arg)
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1260 (delete-file fqm-file)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1261 (if (and arg feedmail-queue-chatty) (message "FQM: Nuked %s" fqm-file)))
22609
c2ed862173da Style and doc fixes.
Karl Heuer <kwzh@gnu.org>
parents: 22552
diff changeset
1262 "*Function that will be called after a message has been sent.
c2ed862173da Style and doc fixes.
Karl Heuer <kwzh@gnu.org>
parents: 22552
diff changeset
1263 Not called in the case of errors. This function is called with two
c2ed862173da Style and doc fixes.
Karl Heuer <kwzh@gnu.org>
parents: 22552
diff changeset
1264 arguments: the name of the message queue file for the message just sent,
c2ed862173da Style and doc fixes.
Karl Heuer <kwzh@gnu.org>
parents: 22552
diff changeset
1265 and the optional argument used in the call to `feedmail-run-the-queue'
c2ed862173da Style and doc fixes.
Karl Heuer <kwzh@gnu.org>
parents: 22552
diff changeset
1266 or `feedmail-run-the-queue-no-prompts' (prefix arg if interactive).
c2ed862173da Style and doc fixes.
Karl Heuer <kwzh@gnu.org>
parents: 22552
diff changeset
1267 In any case, the affiliated buffer is killed elsewhere, so don't do that
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1268 inside this function. Return value is ignored.
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1269
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1270 The default action is an anonymous function which gets rid of the file
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1271 from the queue directory. With a non-nil second argument, a brief
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1272 message is give for each file deleted. You could replace this
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1273 function, for example, to archive all of your sent messages someplace
22609
c2ed862173da Style and doc fixes.
Karl Heuer <kwzh@gnu.org>
parents: 22552
diff changeset
1274 \(though there are better ways to get that particular result\)."
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1275 :group 'feedmail-queue
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1276 :type 'function
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1277 )
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1278
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1279
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1280 (defvar feedmail-is-a-resend nil
42706
be541feb06cc Fix typo.
Pavel Janík <Pavel@Janik.cz>
parents: 42206
diff changeset
1281 "*Non-nil means the message is a Resend (in the RFC-822 sense).
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1282 This affects the composition of certain headers. feedmail sets this
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1283 variable as soon as it starts prepping the message text buffer, so any
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1284 user-supplied functions can rely on it. Users shouldn't set or change this
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1285 variable, but may depend on its value as described here.")
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1286
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1287
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1288 (defcustom feedmail-buffer-eating-function 'feedmail-buffer-to-binmail
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1289 "*Function used to send the prepped buffer to a subprocess.
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1290 The function's three (mandatory) arguments are: (1) the buffer
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1291 containing the prepped message; (2) a buffer where errors should be
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1292 directed; and (3) a list containing the addresses individually as
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1293 strings. Three popular choices for this are
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1294 feedmail-buffer-to-binmail, feedmail-buffer-to-smtpmail, and
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1295 feedmail-buffer-to-sendmail. If you use the sendmail form, you
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1296 probably want to set feedmail-nuke-bcc and/or feedmail-nuke-resent-bcc
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1297 to nil. If you use the binmail form, check the value of
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1298 feedmail-binmail-template."
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1299 :group 'feedmail-misc
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1300 :type 'function
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1301 )
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1302
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1303
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1304 (defcustom feedmail-binmail-template (if mail-interactive "/bin/mail %s" "/bin/rmail %s")
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1305 "*Command template for the subprocess which will get rid of the mail.
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1306 It can result in any command understandable by /bin/sh. Might not
22801
e71025b5e000 Avoid using all-caps for non-arguments.
Karl Heuer <kwzh@gnu.org>
parents: 22800
diff changeset
1307 work at all in non-Unix environments. The single '%s', if present,
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1308 gets replaced by the space-separated, simplified list of addressees.
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1309 Used in feedmail-buffer-to-binmail to form the shell command which
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1310 will receive the contents of the prepped buffer as stdin. If you'd
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1311 like your errors to come back as mail instead of immediately in a
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1312 buffer, try /bin/rmail instead of /bin/mail (this can be accomplished
22609
c2ed862173da Style and doc fixes.
Karl Heuer <kwzh@gnu.org>
parents: 22552
diff changeset
1313 by keeping the default nil setting of `mail-interactive'). You might
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1314 also like to consult local mail experts for any other interesting
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1315 command line possibilities."
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1316 :group 'feedmail-misc
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1317 :type 'string
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1318 )
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1319
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1320
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1321 ;; feedmail-buffer-to-binmail, feedmail-buffer-to-sendmail, and
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1322 ;; feedmail-buffer-to-smptmail are the only things provided for values
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1323 ;; for the variable feedmail-buffer-eating-function. It's pretty easy
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1324 ;; to write your own, though.
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1325 (defun feedmail-buffer-to-binmail (prepped errors-to addr-listoid)
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1326 "Function which actually calls /bin/mail as a subprocess.
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1327 Feeds the buffer to it."
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1328 (set-buffer prepped)
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1329 (apply
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1330 'call-process-region
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1331 (append (list (point-min) (point-max) "/bin/sh" nil errors-to nil "-c"
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1332 (format feedmail-binmail-template
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1333 (mapconcat 'identity addr-listoid " "))))))
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1334
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1335
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1336 (defun feedmail-buffer-to-sendmail (prepped errors-to addr-listoid)
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1337 "Function which actually calls sendmail as a subprocess.
22801
e71025b5e000 Avoid using all-caps for non-arguments.
Karl Heuer <kwzh@gnu.org>
parents: 22800
diff changeset
1338 Feeds the buffer to it. Probably has some flaws for Resent-* and other
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1339 complicated cases."
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1340 (set-buffer prepped)
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1341 (apply 'call-process-region
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1342 (append (list (point-min) (point-max)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1343 (if (boundp 'sendmail-program) sendmail-program "/usr/lib/sendmail")
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1344 nil errors-to nil "-oi" "-t")
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1345 ;; provide envelope "from" to sendmail; results will vary
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1346 (list "-f" user-mail-address)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1347 ;; These mean "report errors by mail" and "deliver in background".
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1348 (if (null mail-interactive) '("-oem" "-odb")))))
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1349
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1350 ;; provided by jam@austin.asc.slb.com (James A. McLaughlin);
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1351 ;; simplified by WJC after more feedmail development;
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1352 ;; idea (but not implementation) of copying smtpmail trace buffer to
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1353 ;; feedmail error buffer from:
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1354 ;; Mon 14-Oct-1996; Douglas Gray Stephens
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1355 ;; modified to insert error for displaying
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1356 (defun feedmail-buffer-to-smtpmail (prepped errors-to addr-listoid)
33984
d81160aa663f Require smtpmail when compiling.
Dave Love <fx@gnu.org>
parents: 33424
diff changeset
1357 "Function which actually calls `smtpmail-via-smtp' to send buffer as e-mail."
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1358 ;; I'm not sure smtpmail.el is careful about the following
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1359 ;; return value, but it also uses it internally, so I will fear
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1360 ;; no evil.
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1361 (require 'smtpmail)
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1362 (if (not (smtpmail-via-smtp addr-listoid prepped))
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1363 (progn
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1364 (set-buffer errors-to)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1365 (insert "Send via smtpmail failed. Probable SMTP protocol error.\n")
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1366 (insert "Look for details below or in the *Messages* buffer.\n\n")
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1367 (let ((case-fold-search t)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1368 ;; don't be overconfident about the name of the trace buffer
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1369 (tracer (concat "trace.*smtp.*" (regexp-quote smtpmail-smtp-server))))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1370 (mapcar
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1371 '(lambda (buffy)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1372 (if (string-match tracer (buffer-name buffy))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1373 (progn
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1374 (insert "SMTP Trace from " (buffer-name buffy) "\n---------------")
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1375 (insert-buffer buffy)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1376 (insert "\n\n"))))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1377 (buffer-list))))))
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1378
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1379
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1380 ;; just a place to park a docstring
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1381 (defconst feedmail-fiddle-plex-blurb nil
22609
c2ed862173da Style and doc fixes.
Karl Heuer <kwzh@gnu.org>
parents: 22552
diff changeset
1382 "A fiddle-plex is a concise way of specifying header field fiddling.
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1383 It is a list of up to 4 elements: NAME, VALUE, ACTION, FOLDING. The element
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1384 VALUE can also be a list sometimes.
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1385
22609
c2ed862173da Style and doc fixes.
Karl Heuer <kwzh@gnu.org>
parents: 22552
diff changeset
1386 NAME is the name of the header field to be fiddled with. Although case
c2ed862173da Style and doc fixes.
Karl Heuer <kwzh@gnu.org>
parents: 22552
diff changeset
1387 doesn't matter in looking for headers, case of NAME is preserved when a header
c2ed862173da Style and doc fixes.
Karl Heuer <kwzh@gnu.org>
parents: 22552
diff changeset
1388 is inserted via fiddling. It shouldn't include the trailing colon.
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1389
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1390 VALUE is either nil, a simple string, a function returning nil or a string, or,
22609
c2ed862173da Style and doc fixes.
Karl Heuer <kwzh@gnu.org>
parents: 22552
diff changeset
1391 as described below for ACTION `combine', a list of up to three values.
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1392
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1393 ACTION describes the nature of the fiddling to be done. Possibilities
22609
c2ed862173da Style and doc fixes.
Karl Heuer <kwzh@gnu.org>
parents: 22552
diff changeset
1394 for ACTION (default is `supplement'):
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1395
22609
c2ed862173da Style and doc fixes.
Karl Heuer <kwzh@gnu.org>
parents: 22552
diff changeset
1396 `supplement' Leave other like fields as-is, insert this one.
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1397
22609
c2ed862173da Style and doc fixes.
Karl Heuer <kwzh@gnu.org>
parents: 22552
diff changeset
1398 `replace' Delete other like fields, if any, and insert this one.
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1399
22609
c2ed862173da Style and doc fixes.
Karl Heuer <kwzh@gnu.org>
parents: 22552
diff changeset
1400 `create' Insert this one only if no like field exists.
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1401
22609
c2ed862173da Style and doc fixes.
Karl Heuer <kwzh@gnu.org>
parents: 22552
diff changeset
1402 `combine' Combine aggregate values of like fields with this one.
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1403 In this case, VALUE has a special form. It is a list
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1404 of three items: VAL-PRE, VAL-LIKE, and VAL-POST.
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1405 VAL-PRE and VAL-POST are strings or nil. VAL-LIKE may
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1406 be either a string or a function (it may also be nil,
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1407 but there's not much point to that).
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1408
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1409 Values of like header fields are aggregated, leading and
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1410 trailing whitespace is removed, and embedded
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1411 whitespace is left as-is. If there are no like
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1412 fields, or the aggregate value is an empty string,
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1413 VAL-LIKE is not used. Else, if VAL-LIKE is a function,
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1414 it is called with two arguments: NAME and the
22609
c2ed862173da Style and doc fixes.
Karl Heuer <kwzh@gnu.org>
parents: 22552
diff changeset
1415 aggregate like values. Else, if VAL-LIKE is a string, it is
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1416 used as a format string where a single \%s will be
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1417 replaced by the aggregate values of like fields.
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1418
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1419 VAL-PRE, the results of using VAL-LIKE, and VAL-POST
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1420 are concatenated, and the result, if not nil and not
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1421 an empty string, is used as the new value for the
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1422 field. Although this description sounds a bit
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1423 complicated, the idea is to provide a mechanism for
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1424 combining the old value with a new value in a flexible
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1425 way. For example, if you wanted to add a new value to
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1426 an existing header field by adding a semi-colon and
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1427 then starting the new value on a continuation line,
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1428 you might specify this:
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1429
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1430 (nil \"%s;\\n\\t\" \"This is my new value\")
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1431
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1432 FOLDING can be nil, in which case VALUE is used as-is. If FOLDING is
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1433 non-nil, feedmail \"smart filling\" is done on VALUE just before
22609
c2ed862173da Style and doc fixes.
Karl Heuer <kwzh@gnu.org>
parents: 22552
diff changeset
1434 insertion.")
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1435
33984
d81160aa663f Require smtpmail when compiling.
Dave Love <fx@gnu.org>
parents: 33424
diff changeset
1436 ;;;###autoload
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1437 (defun feedmail-send-it ()
35616
47f26b110f6b (feedmail): Add :link.
Dave Love <fx@gnu.org>
parents: 33984
diff changeset
1438 "Send the current mail buffer using the Feedmail package.
47f26b110f6b (feedmail): Add :link.
Dave Love <fx@gnu.org>
parents: 33984
diff changeset
1439 This is a suitable value for `send-mail-function'. It can be used
47f26b110f6b (feedmail): Add :link.
Dave Love <fx@gnu.org>
parents: 33984
diff changeset
1440 with various lower-level mechanisms to provide features such as queueing."
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1441
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1442 ;; avoid matching trouble over slash vs backslash by getting canonical
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1443 (if feedmail-queue-directory
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1444 (setq feedmail-queue-directory (expand-file-name feedmail-queue-directory)))
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1445 (if feedmail-queue-draft-directory
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1446 (setq feedmail-queue-draft-directory (expand-file-name feedmail-queue-draft-directory)))
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1447 (if (not feedmail-enable-queue) (feedmail-send-it-immediately)
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1448 ;; else, queuing is enabled, should we ask about it or just do it?
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1449 (if feedmail-ask-before-queue
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1450 (funcall (feedmail-queue-send-edit-prompt))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1451 (feedmail-dump-message-to-queue feedmail-queue-directory 'after-queue))))
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1452
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1453
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1454 (defun feedmail-message-action-send ()
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1455 ;; hooks can make this take a while so clear the prompt
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1456 (message "FQM: Immediate send...")
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1457 (feedmail-send-it-immediately))
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1458
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1459
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1460 ;; From a VM mailing list discussion and some suggestions from Samuel Mikes <smikes@alumni.hmc.edu>
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1461 (defun feedmail-queue-express-to-queue ()
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1462 "*Send message directly to the queue, with a minimum of fuss and bother."
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1463 (interactive)
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1464 (let ((feedmail-enable-queue t)
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1465 (feedmail-ask-before-queue nil)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1466 (feedmail-queue-reminder-alist nil)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1467 (feedmail-queue-chatty-sit-for 0))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1468 (feedmail-send-it)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1469 )
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1470 )
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1471
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1472
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1473 (defun feedmail-queue-express-to-draft ()
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1474 "*Send message directly to the draft queue, with a minimum of fuss and bother."
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1475 (interactive)
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1476 (let ((feedmail-queue-directory feedmail-queue-draft-directory))
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1477 (feedmail-queue-express-to-queue)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1478 )
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1479 )
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1480
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1481
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1482 (defun feedmail-message-action-send-strong ()
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1483 (let ((feedmail-confirm-outgoing nil)) (feedmail-message-action-send)))
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1484
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1485
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1486 (defun feedmail-message-action-edit ()
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1487 (error "FQM: Message not queued; returning to edit"))
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1488
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1489
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1490 (defun feedmail-message-action-draft ()
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1491 (feedmail-dump-message-to-queue feedmail-queue-draft-directory 'after-draft))
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1492
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1493
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1494 (defun feedmail-message-action-draft-strong ()
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1495 (let ((buffer-file-name nil))
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1496 (feedmail-message-action-draft)))
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1497
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1498
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1499 (defun feedmail-message-action-queue ()
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1500 (feedmail-dump-message-to-queue feedmail-queue-directory 'after-queue))
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1501
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1502
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1503 (defun feedmail-message-action-queue-strong ()
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1504 (let ((buffer-file-name nil))
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1505 (feedmail-message-action-queue)))
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1506
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1507
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1508 (defun feedmail-message-action-toggle-spray ()
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1509 (let ((feedmail-enable-spray (not feedmail-enable-spray)))
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1510 (if feedmail-enable-spray
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1511 (message "FQM: For this message, spray toggled ON")
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1512 (message "FQM: For this message, spray toggled OFF"))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1513 (sit-for 3)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1514 ;; recursion, but harmless
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1515 (feedmail-send-it)))
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1516
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1517
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1518 (defun feedmail-message-action-help ()
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1519 (let ((d-string " "))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1520 (if (stringp feedmail-ask-before-queue-default)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1521 (setq d-string feedmail-ask-before-queue-default)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1522 (setq d-string (char-to-string feedmail-ask-before-queue-default)))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1523 (feedmail-queue-send-edit-prompt-help d-string)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1524 ;; recursive, but no worries (it goes deeper on user action)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1525 (feedmail-send-it)))
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1526
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1527
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1528 ;;;###autoload
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1529 (defun feedmail-run-the-queue-no-prompts (&optional arg)
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1530 "Like feedmail-run-the-queue, but suppress confirmation prompts."
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1531 (interactive "p")
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1532 (let ((feedmail-confirm-outgoing nil)) (feedmail-run-the-queue arg)))
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1533
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1534 ;;;###autoload
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1535 (defun feedmail-run-the-queue-global-prompt (&optional arg)
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1536 "Like feedmail-run-the-queue, but with a global confirmation prompt.
22609
c2ed862173da Style and doc fixes.
Karl Heuer <kwzh@gnu.org>
parents: 22552
diff changeset
1537 This is generally most useful if run non-interactively, since you can
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1538 bail out with an appropriate answer to the global confirmation prompt."
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1539 (interactive "p")
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1540 (let ((feedmail-queue-runner-confirm-global t)) (feedmail-run-the-queue arg)))
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1541
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1542 ;;;###autoload
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1543 (defun feedmail-run-the-queue (&optional arg)
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1544 "Visit each message in the feedmail queue directory and send it out.
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1545 Return value is a list of three things: number of messages sent, number of
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1546 messages skipped, and number of non-message things in the queue (commonly
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1547 backup file names and the like)."
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1548 (interactive "p")
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1549 ;; avoid matching trouble over slash vs backslash by getting canonical
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1550 (if feedmail-queue-directory
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1551 (setq feedmail-queue-directory (expand-file-name feedmail-queue-directory)))
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1552 (if feedmail-queue-draft-directory
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1553 (setq feedmail-queue-draft-directory (expand-file-name feedmail-queue-draft-directory)))
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1554 (let* ((maybe-file)
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1555 (qlist (feedmail-look-at-queue-directory feedmail-queue-directory))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1556 (dlist (feedmail-look-at-queue-directory feedmail-queue-draft-directory))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1557 (q-cnt (nth 0 qlist))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1558 (q-oth (nth 1 qlist))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1559 (d-cnt (nth 0 dlist))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1560 (d-oth (nth 1 dlist))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1561 (messages-sent 0)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1562 (messages-skipped 0)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1563 (blobby-buffer)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1564 (already-buffer)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1565 (this-mhsep)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1566 (do-the-run t)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1567 (list-of-possible-fqms))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1568 (if (and (> q-cnt 0) feedmail-queue-runner-confirm-global)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1569 (setq do-the-run
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1570 (if (fboundp 'y-or-n-p-with-timeout)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1571 (y-or-n-p-with-timeout (format "FQM: Draft: %dm+%d, Queue: %dm+%d; run the queue? "
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1572 d-cnt d-oth q-cnt q-oth)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1573 5 nil)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1574 (y-or-n-p (format "FQM: Draft: %dm+%d, Queue: %dm+%d; run the queue? "
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1575 d-cnt d-oth q-cnt q-oth))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1576 )))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1577 (if (not do-the-run)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1578 (setq messages-skipped q-cnt)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1579 (save-window-excursion
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1580 (setq list-of-possible-fqms (directory-files feedmail-queue-directory t))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1581 (if feedmail-queue-run-orderer
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1582 (setq list-of-possible-fqms (funcall feedmail-queue-run-orderer list-of-possible-fqms)))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1583 (mapcar
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1584 '(lambda (blobby)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1585 (setq maybe-file (expand-file-name blobby feedmail-queue-directory))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1586 (cond
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1587 ((file-directory-p maybe-file) nil) ; don't care about subdirs
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1588 ((feedmail-fqm-p blobby)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1589 (setq blobby-buffer (generate-new-buffer (concat "FQM " blobby)))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1590 (setq already-buffer
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1591 (if (fboundp 'find-buffer-visiting) ; missing from XEmacs
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1592 (find-buffer-visiting maybe-file)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1593 (get-file-buffer maybe-file)))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1594 (if (and already-buffer (buffer-modified-p already-buffer))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1595 (save-window-excursion
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1596 (display-buffer (set-buffer already-buffer))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1597 (if (fboundp 'y-or-n-p-with-timeout)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1598 ;; make a guess that the user just forgot to save
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1599 (if (y-or-n-p-with-timeout (format "FQM: Visiting %s; save before send? " blobby) 10 t)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1600 (save-buffer))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1601 (if (y-or-n-p (format "FQM: Visiting %s; save before send? " blobby))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1602 (save-buffer))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1603 )))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1604
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1605 (set-buffer blobby-buffer)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1606 (setq buffer-offer-save nil)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1607 (buffer-disable-undo blobby-buffer)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1608 (insert-file-contents-literally maybe-file)
22800
125816f37462 (feedmail-queue-send-edit-prompt-help-first):
Karl Heuer <kwzh@gnu.org>
parents: 22799
diff changeset
1609 ;; work around text-vs-binary weirdness and also around rmail-resend's creative
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1610 ;; manipulation of mail-header-separator
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1611 ;;
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1612 ;; if we don't find the normal M-H-S, and the alternative is defined but also
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1613 ;; not found, try reading the file a different way
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1614 ;;
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1615 ;; if M-H-S not found and (a-M-H-S is nil or not found)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1616 (if (and (not (feedmail-find-eoh t))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1617 (or (not feedmail-queue-alternative-mail-header-separator)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1618 (not
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1619 (let ((mail-header-separator feedmail-queue-alternative-mail-header-separator))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1620 (feedmail-find-eoh t)))))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1621 (let ((file-name-buffer-file-type-alist nil) (default-buffer-file-type nil))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1622 (erase-buffer) (insert-file-contents maybe-file))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1623 )
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1624 ;; if M-H-S not found and (a-M-H-S is non-nil and is found)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1625 ;; temporarily set M-H-S to the value of a-M-H-S
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1626 (if (and (not (feedmail-find-eoh t))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1627 feedmail-queue-alternative-mail-header-separator
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1628 (let ((mail-header-separator feedmail-queue-alternative-mail-header-separator))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1629 (feedmail-find-eoh t)))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1630 (setq this-mhsep feedmail-queue-alternative-mail-header-separator)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1631 (setq this-mhsep mail-header-separator))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1632 (funcall feedmail-queue-runner-mode-setter arg)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1633 (condition-case nil ; don't give up the loop if user skips some
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1634 (let ((feedmail-enable-queue nil)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1635 (mail-header-separator this-mhsep)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1636 (feedmail-queue-runner-is-active maybe-file))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1637 (funcall feedmail-queue-runner-message-sender arg)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1638 (set-buffer blobby-buffer)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1639 (if (buffer-modified-p) ; still modified, means wasn't sent
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1640 (setq messages-skipped (1+ messages-skipped))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1641 (setq messages-sent (1+ messages-sent))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1642 (funcall feedmail-queue-runner-cleaner-upper maybe-file arg)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1643 (if (and already-buffer (not (file-exists-p maybe-file)))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1644 ;; we have gotten rid of the file associated with the
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1645 ;; buffer, so update the buffer's notion of that
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1646 (save-excursion
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1647 (set-buffer already-buffer)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1648 (setq buffer-file-name nil)))))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1649 (error (setq messages-skipped (1+ messages-skipped))))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1650 (kill-buffer blobby-buffer)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1651 (if feedmail-queue-chatty
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1652 (progn
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1653 (message "FQM: %d to go, %d sent, %d skipped (%d other files ignored)"
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1654 (- q-cnt messages-sent messages-skipped)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1655 messages-sent messages-skipped q-oth)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1656 (sit-for feedmail-queue-chatty-sit-for))))))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1657 list-of-possible-fqms)))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1658 (if feedmail-queue-chatty
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1659 (progn
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1660 (message "FQM: %d sent, %d skipped (%d other files ignored)"
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1661 messages-sent messages-skipped q-oth)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1662 (sit-for feedmail-queue-chatty-sit-for)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1663 (feedmail-queue-reminder 'after-run)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1664 (sit-for feedmail-queue-chatty-sit-for)))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1665 (list messages-sent messages-skipped q-oth)))
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1666
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1667
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1668 ;;;###autoload
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1669 (defun feedmail-queue-reminder (&optional what-event)
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1670 "Perform some kind of reminder activity about queued and draft messages.
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1671 Called with an optional symbol argument which says what kind of event
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1672 is triggering the reminder activity. The default is 'on-demand, which
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1673 is what you typically would use if you were putting this in your emacs start-up
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1674 or mail hook code. Other recognized values for WHAT-EVENT (these are passed
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1675 internally by feedmail):
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1676
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1677 after-immediate (a message has just been sent in immediate mode)
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1678 after-queue (a message has just been queued)
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1679 after-draft (a message has just been placed in the draft directory)
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1680 after-run (the queue has just been run, possibly sending messages)
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1681
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1682 WHAT-EVENT is used as a key into the table feedmail-queue-reminder-alist. If
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1683 the associated value is a function, it is called without arguments and is expected
22609
c2ed862173da Style and doc fixes.
Karl Heuer <kwzh@gnu.org>
parents: 22552
diff changeset
1684 to perform the reminder activity. You can supply your own reminder functions
c2ed862173da Style and doc fixes.
Karl Heuer <kwzh@gnu.org>
parents: 22552
diff changeset
1685 by redefining feedmail-queue-reminder-alist. If you don't want any reminders,
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1686 you can set feedmail-queue-reminder-alist to nil."
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1687 (interactive "p")
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1688 (let ((key (if (and what-event (symbolp what-event)) what-event 'on-demand)) entry reminder)
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1689 (setq entry (assoc key feedmail-queue-reminder-alist))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1690 (setq reminder (cdr entry))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1691 (if (fboundp reminder) (funcall reminder)))
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1692 )
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1693
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1694
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1695 (defun feedmail-queue-reminder-brief ()
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1696 "Brief display of draft and queued message counts in modeline."
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1697 (interactive)
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1698 (let (q-cnt d-cnt q-lis d-lis)
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1699 (setq q-lis (feedmail-look-at-queue-directory feedmail-queue-directory))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1700 (setq d-lis (feedmail-look-at-queue-directory feedmail-queue-draft-directory))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1701 (setq q-cnt (car q-lis))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1702 (setq d-cnt (car d-lis))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1703 (if (or (> q-cnt 0) (> d-cnt 0))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1704 (progn
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1705 (message "FQM: [D: %d, Q: %d]" d-cnt q-cnt))))
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1706 )
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1707
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1708
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1709 (defun feedmail-queue-reminder-medium ()
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1710 "Verbose display of draft and queued message counts in modeline."
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1711 (interactive)
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1712 (let (q-cnt d-cnt q-oth d-oth q-lis d-lis)
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1713 (setq q-lis (feedmail-look-at-queue-directory feedmail-queue-directory))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1714 (setq d-lis (feedmail-look-at-queue-directory feedmail-queue-draft-directory))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1715 (setq q-cnt (car q-lis))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1716 (setq d-cnt (car d-lis))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1717 (setq q-oth (nth 1 q-lis))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1718 (setq d-oth (nth 1 d-lis))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1719 (if (or (> q-cnt 0) (> d-cnt 0))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1720 (progn
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1721 (message "FQM: Draft: %dm+%d in \"%s\", Queue: %dm+%d in \"%s\""
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1722 d-cnt d-oth (file-name-nondirectory feedmail-queue-draft-directory)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1723 q-cnt q-oth (file-name-nondirectory feedmail-queue-directory)))))
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1724 )
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1725
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1726
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1727 (defun feedmail-queue-send-edit-prompt ()
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1728 "Ask whether to queue, send immediately, or return to editing a message."
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1729 ;; Some implementation ideas here came from the userlock.el code
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1730 (discard-input)
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1731 (save-window-excursion
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1732 (let ((answer) (d-char) (d-string " "))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1733 (if (stringp feedmail-ask-before-queue-default)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1734 (progn
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1735 (setq d-char (string-to-char feedmail-ask-before-queue-default))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1736 (setq d-string feedmail-ask-before-queue-default))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1737 (setq d-string (char-to-string feedmail-ask-before-queue-default))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1738 (setq d-char feedmail-ask-before-queue-default)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1739 )
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1740 (while (null answer)
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1741 (message feedmail-ask-before-queue-prompt d-string)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1742 (let ((user-sez
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1743 (let ((inhibit-quit t) (cursor-in-echo-area t) (echo-keystrokes 0))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1744 (read-char-exclusive))))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1745 (if (= user-sez help-char)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1746 (setq answer '(^ . feedmail-message-action-help))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1747 (if (or (eq user-sez ?\C-m) (eq user-sez ?\C-j) (eq user-sez ?y))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1748 (setq user-sez d-char))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1749 ;; these char-to-int things are because of some
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1750 ;; incomprensible difference between the two in
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1751 ;; byte-compiled stuff between Emacs and XEmacs
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1752 ;; (well, I'm sure someone could comprehend it,
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1753 ;; but I say 'uncle')
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1754 (setq answer (or (assoc user-sez feedmail-prompt-before-queue-user-alist)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1755 (and (fboundp 'char-to-int)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1756 (assoc (char-to-int user-sez) feedmail-prompt-before-queue-user-alist))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1757 (assoc user-sez feedmail-prompt-before-queue-standard-alist)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1758 (and (fboundp 'char-to-int)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1759 (assoc (char-to-int user-sez) feedmail-prompt-before-queue-standard-alist))))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1760 (if (or (null answer) (null (cdr answer)))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1761 (progn
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1762 (beep)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1763 (message feedmail-ask-before-queue-reprompt d-string)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1764 (sit-for 3)))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1765 )))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1766 (cdr answer)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1767 )))
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1768
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1769 (defconst feedmail-p-h-b-n "*FQM Help*")
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1770
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1771 (defun feedmail-queue-send-edit-prompt-help (d-string)
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1772 (let ((fqm-help (get-buffer feedmail-p-h-b-n)))
39477
7ff02d7c4baf (feedmail-queue-send-edit-prompt-help):
Gerd Moellmann <gerd@gnu.org>
parents: 38436
diff changeset
1773 (if (and fqm-help (get-buffer-window fqm-help 'visible))
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1774 (feedmail-queue-send-edit-prompt-help-later fqm-help d-string)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1775 (feedmail-queue-send-edit-prompt-help-first d-string))))
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1776
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1777 (defun feedmail-queue-send-edit-prompt-help-later (fqm-help d-string)
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1778 ;; scrolling fun
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1779 (save-selected-window
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1780 (let ((signal-error-on-buffer-boundary nil)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1781 (fqm-window (display-buffer fqm-help)))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1782 (select-window fqm-window)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1783 (if (pos-visible-in-window-p (point-max) fqm-window)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1784 (feedmail-queue-send-edit-prompt-help-first d-string)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1785 ;;(goto-char (point-min))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1786 (scroll-up nil)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1787 ))))
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1788
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1789 (defun feedmail-queue-send-edit-prompt-help-first (d-string)
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1790 (with-output-to-temp-buffer feedmail-p-h-b-n
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1791 (princ "You're dispatching a message and feedmail queuing is enabled.
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1792 Typing ? or C-v will normally scroll this help buffer.
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1793
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1794 Choices:
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1795 q QUEUE for later sending (via feedmail-run-the-queue)
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1796 Q QUEUE! like \"q\", but always make a new file
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1797 i IMMEDIATELY send this (but not the other queued messages)
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1798 I IMMEDIATELY! like \"i\", but skip following confirmation prompt
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1799 d DRAFT queue in the draft directory
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1800 D DRAFT! like \"d\", but always make a new file
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1801 e EDIT return to the message edit buffer (don't send or queue)
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1802 * SPRAY toggle spray mode (individual message transmissions)
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1803
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1804 Synonyms:
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1805 s SEND immediately (same as \"i\")
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1806 S SEND! immediately (same as \"I\")
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1807 r ROUGH draft (same as \"d\")
22800
125816f37462 (feedmail-queue-send-edit-prompt-help-first):
Karl Heuer <kwzh@gnu.org>
parents: 22799
diff changeset
1808 R ROUGH! draft (same as \"D\")
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1809 n NOPE didn't mean it (same as \"e\")
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1810 y YUP do the default behavior (same as \"C-m\")
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1811
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1812 The user-configurable default is currently \"")
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1813 (princ d-string)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1814 (princ "\". For other possibilities,
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1815 see the variable feedmail-prompt-before-queue-user-alist.
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1816 ")
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1817 (and (stringp feedmail-prompt-before-queue-help-supplement)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1818 (princ feedmail-prompt-before-queue-help-supplement))
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1819 (save-excursion (set-buffer standard-output) (if (fboundp 'help-mode) (help-mode)))))
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1820
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1821 (defun feedmail-look-at-queue-directory (queue-directory)
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1822 "Find out some things about a queue directory.
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1823 Result is a list containing a count of queued messages in the
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1824 directory, a count of other files in the directory, and a high water
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1825 mark for prefix sequence numbers. Subdirectories are not included in
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1826 the counts."
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1827 (let ((q-cnt 0) (q-oth 0) (high-water 0) (blobbet))
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1828 ;; iterate, counting things we find along the way in the directory
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1829 (if (file-directory-p queue-directory)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1830 (mapcar
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1831 '(lambda (blobby)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1832 (cond
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1833 ((file-directory-p blobby) nil) ; don't care about subdirs
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1834 ((feedmail-fqm-p blobby)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1835 (setq blobbet (file-name-nondirectory blobby))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1836 (if (string-match "^[0-9][0-9][0-9]-" blobbet)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1837 (let ((water-mark))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1838 (setq water-mark (string-to-int (substring blobbet 0 3)))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1839 (if (> water-mark high-water) (setq high-water water-mark))))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1840 (setq q-cnt (1+ q-cnt)))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1841 (t (setq q-oth (1+ q-oth)))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1842 ))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1843 (directory-files queue-directory t)))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1844 (list q-cnt q-oth high-water)))
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1845
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1846 (defun feedmail-tidy-up-slug (slug)
22609
c2ed862173da Style and doc fixes.
Karl Heuer <kwzh@gnu.org>
parents: 22552
diff changeset
1847 "Utility for mapping out suspect characters in a potential filename."
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1848 ;; even programmers deserve a break sometimes, so cover nil for them
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1849 (if (null slug) (setq slug ""))
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1850 ;; replace all non-alphanumerics with hyphen for safety
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1851 (while (string-match "[^a-z0-9-]+" slug) (setq slug (replace-match "-" nil nil slug)))
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1852 ;; collapse multiple hyphens to one
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1853 (while (string-match "--+" slug) (setq slug (replace-match "-" nil nil slug)))
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1854 ;; for tidyness, peel off leading hyphens
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1855 (if (string-match "^-*" slug) (setq slug (replace-match "" nil nil slug)))
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1856 ;; for tidyness, peel off trailing hyphens
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1857 (if (string-match "-*$" slug) (setq slug (replace-match "" nil nil slug)))
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1858 slug
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1859 )
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1860
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1861 (defun feedmail-queue-subject-slug-maker (&optional queue-directory)
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1862 "Create a name for storing the message in the queue.
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1863 Optional argument QUEUE-DIRECTORY specifies into which directory the
22801
e71025b5e000 Avoid using all-caps for non-arguments.
Karl Heuer <kwzh@gnu.org>
parents: 22800
diff changeset
1864 file will be placed. The name is based on the Subject: header (if
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1865 there is one). If there is no subject,
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1866 feedmail-queue-default-file-slug is consulted Special characters are
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1867 mapped to mostly alphanumerics for safety."
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1868 (let ((eoh-marker) (case-fold-search t) (subject "") (s-point))
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1869 (setq eoh-marker (feedmail-find-eoh))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1870 (goto-char (point-min))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1871 ;; get raw subject value (first line, anyhow)
22801
e71025b5e000 Avoid using all-caps for non-arguments.
Karl Heuer <kwzh@gnu.org>
parents: 22800
diff changeset
1872 (if (re-search-forward "^Subject:" eoh-marker t)
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1873 (progn (setq s-point (point))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1874 (end-of-line)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1875 (setq subject (buffer-substring s-point (point)))))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1876 (setq subject (feedmail-tidy-up-slug subject))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1877 (if (zerop (length subject))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1878 (setq subject
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1879 (cond
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1880 ((stringp feedmail-queue-default-file-slug) feedmail-queue-default-file-slug)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1881 ((fboundp feedmail-queue-default-file-slug)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1882 (save-excursion (funcall feedmail-queue-default-file-slug)))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1883 ((eq feedmail-queue-default-file-slug 'ask)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1884 (file-name-nondirectory
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1885 (read-file-name "FQM: Message filename slug? "
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1886 (file-name-as-directory queue-directory) subject nil subject)))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1887 (t "no subject"))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1888 ))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1889 ;; one more time, with feeling
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1890 (feedmail-tidy-up-slug subject)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1891 ))
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1892
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1893
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1894 (defun feedmail-create-queue-filename (queue-directory)
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1895 (let ((slug "wjc"))
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1896 (cond
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1897 (feedmail-queue-slug-maker
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1898 (save-excursion (setq slug (funcall feedmail-queue-slug-maker queue-directory))))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1899 (feedmail-ask-for-queue-slug
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1900 (setq slug (file-name-nondirectory
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1901 (read-file-name (concat "FQM: Message filename slug? [" slug "]? ")
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1902 (file-name-as-directory queue-directory) slug nil slug))))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1903 )
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1904 (setq slug (feedmail-tidy-up-slug slug))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1905 (setq slug (format "%03d-%s" (1+ (nth 2 (feedmail-look-at-queue-directory queue-directory))) slug))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1906 (concat
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1907 (expand-file-name slug queue-directory)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1908 feedmail-queue-fqm-suffix)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1909 ))
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1910
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1911
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1912 (defun feedmail-dump-message-to-queue (queue-directory what-event)
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1913 (or (file-accessible-directory-p queue-directory)
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1914 ;; progn to get nil result no matter what
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1915 (progn (make-directory queue-directory t) nil)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1916 (file-accessible-directory-p queue-directory)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1917 (error (concat "FQM: Message not queued; trouble with directory " queue-directory)))
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1918 (let ((filename)
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1919 (is-fqm)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1920 (is-in-this-dir)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1921 (previous-buffer-file-name buffer-file-name))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1922 (if buffer-file-name
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1923 (progn
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1924 (setq is-fqm (feedmail-fqm-p buffer-file-name))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1925 (setq is-in-this-dir (string-equal
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1926 (directory-file-name queue-directory)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1927 (directory-file-name (expand-file-name (file-name-directory buffer-file-name)))))))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1928 ;; if visiting a queued message, just save
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1929 (if (and is-fqm is-in-this-dir)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1930 (setq filename buffer-file-name)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1931 (setq filename (feedmail-create-queue-filename queue-directory)))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1932 ;; make binary file on DOS/Win95/WinNT, etc
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1933 (let ((buffer-file-type feedmail-force-binary-write)) (write-file filename))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1934 ;; convenient for moving from draft to q, for example
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1935 (if (and previous-buffer-file-name (or (not is-fqm) (not is-in-this-dir))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1936 (y-or-n-p (format "FQM: Was previously %s; delete that? " previous-buffer-file-name)))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1937 (delete-file previous-buffer-file-name))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1938 (if feedmail-nuke-buffer-after-queue
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1939 (let ((a-s-file-name buffer-auto-save-file-name))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1940 ;; be aggressive in nuking auto-save files
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1941 (and (kill-buffer (current-buffer))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1942 delete-auto-save-files
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1943 (file-exists-p a-s-file-name)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1944 (delete-file a-s-file-name))))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1945 (if feedmail-queue-chatty
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1946 (progn (message (concat "FQM: Queued in " filename))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1947 (sit-for feedmail-queue-chatty-sit-for)))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1948 (if feedmail-queue-chatty
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1949 (progn
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1950 (feedmail-queue-reminder what-event)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1951 (sit-for feedmail-queue-chatty-sit-for)))))
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1952
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1953
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1954 ;; from a similar function in mail-utils.el
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1955 (defun feedmail-rfc822-time-zone (time)
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1956 (let* ((sec (or (car (current-time-zone time)) 0))
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1957 (absmin (/ (abs sec) 60)))
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1958 (format "%c%02d%02d" (if (< sec 0) ?- ?+) (/ absmin 60) (% absmin 60))))
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1959
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1960 (defun feedmail-rfc822-date (arg-time)
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1961 (let ((time (if arg-time arg-time (current-time))))
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1962 (concat
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1963 (format-time-string "%a, %e %b %Y %T " time)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1964 (feedmail-rfc822-time-zone time)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1965 )))
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1966
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1967
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1968 (defun feedmail-send-it-immediately ()
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1969 "Handle immediate sending, including during a queue run."
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1970 (let* ((feedmail-error-buffer (get-buffer-create " *FQM Outgoing Email Errors*"))
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1971 (feedmail-prepped-text-buffer (get-buffer-create " *FQM Outgoing Email Text*"))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1972 (feedmail-raw-text-buffer (current-buffer))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1973 (feedmail-address-list)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1974 (eoh-marker)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1975 (bcc-holder)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1976 (resent-bcc-holder)
22801
e71025b5e000 Avoid using all-caps for non-arguments.
Karl Heuer <kwzh@gnu.org>
parents: 22800
diff changeset
1977 (a-re-rtcb "^Resent-\\(To\\|Cc\\|Bcc\\):")
e71025b5e000 Avoid using all-caps for non-arguments.
Karl Heuer <kwzh@gnu.org>
parents: 22800
diff changeset
1978 (a-re-rtc "^Resent-\\(To\\|Cc\\):")
e71025b5e000 Avoid using all-caps for non-arguments.
Karl Heuer <kwzh@gnu.org>
parents: 22800
diff changeset
1979 (a-re-rb "^Resent-Bcc:")
e71025b5e000 Avoid using all-caps for non-arguments.
Karl Heuer <kwzh@gnu.org>
parents: 22800
diff changeset
1980 (a-re-dtcb "^\\(To\\|Cc\\|Bcc\\):")
e71025b5e000 Avoid using all-caps for non-arguments.
Karl Heuer <kwzh@gnu.org>
parents: 22800
diff changeset
1981 (a-re-dtc "^\\(To\\|Cc\\):")
e71025b5e000 Avoid using all-caps for non-arguments.
Karl Heuer <kwzh@gnu.org>
parents: 22800
diff changeset
1982 (a-re-db "^Bcc:")
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1983 ;; to get a temporary changable copy
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1984 (mail-header-separator mail-header-separator)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1985 )
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
1986 (unwind-protect
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1987 (save-excursion
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1988 (set-buffer feedmail-error-buffer) (erase-buffer)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1989 (set-buffer feedmail-prepped-text-buffer) (erase-buffer)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1990
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1991 ;; jam contents of user-supplied mail buffer into our scratch buffer
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1992 (insert-buffer feedmail-raw-text-buffer)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1993
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1994 ;; require one newline at the end.
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1995 (goto-char (point-max))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1996 (or (= (preceding-char) ?\n) (insert ?\n))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1997
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1998 (let ((case-fold-search nil))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
1999 ;; Change header-delimiter to be what mailers expect (empty line).
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2000 ;; leaves match data in place or signals error
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2001 (setq eoh-marker (feedmail-find-eoh))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2002 (replace-match "\n")
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2003 (setq mail-header-separator ""))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2004
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2005 ;; mail-aliases nil = mail-abbrevs.el
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2006 (if (or feedmail-force-expand-mail-aliases
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2007 (and (fboundp 'expand-mail-aliases) mail-aliases))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2008 (expand-mail-aliases (point-min) eoh-marker))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2009
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2010 ;; make it pretty
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2011 (if feedmail-fill-to-cc (feedmail-fill-to-cc-function eoh-marker))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2012 ;; ignore any blank lines in the header
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2013 (goto-char (point-min))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2014 (while (and (re-search-forward "\n\n\n*" eoh-marker t) (< (point) eoh-marker))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2015 (replace-match "\n"))
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2016
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2017 (let ((case-fold-search t) (addr-regexp))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2018 (goto-char (point-min))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2019 ;; there are some RFC-822 combinations/cases missed here,
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2020 ;; but probably good enough and what users expect
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2021 ;;
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2022 ;; use resent-* stuff only if there is at least one non-empty one
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2023 (setq feedmail-is-a-resend
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2024 (re-search-forward
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2025 ;; header name, followed by optional whitespace, followed by
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2026 ;; non-whitespace, followed by anything, followed by newline;
22801
e71025b5e000 Avoid using all-caps for non-arguments.
Karl Heuer <kwzh@gnu.org>
parents: 22800
diff changeset
2027 ;; the idea is empty Resent-* headers are ignored
e71025b5e000 Avoid using all-caps for non-arguments.
Karl Heuer <kwzh@gnu.org>
parents: 22800
diff changeset
2028 "^\\(Resent-To:\\|Resent-Cc:\\|Resent-Bcc:\\)\\s-*\\S-+.*$"
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2029 eoh-marker t))
22801
e71025b5e000 Avoid using all-caps for non-arguments.
Karl Heuer <kwzh@gnu.org>
parents: 22800
diff changeset
2030 ;; if we say so, gather the Bcc stuff before the main course
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2031 (if (eq feedmail-deduce-bcc-where 'first)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2032 (progn (if feedmail-is-a-resend (setq addr-regexp a-re-rb) (setq addr-regexp a-re-db))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2033 (setq feedmail-address-list (feedmail-deduce-address-list feedmail-prepped-text-buffer (point-min) eoh-marker addr-regexp feedmail-address-list))))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2034 ;; the main course
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2035 (if (or (eq feedmail-deduce-bcc-where 'first) (eq feedmail-deduce-bcc-where 'last))
22801
e71025b5e000 Avoid using all-caps for non-arguments.
Karl Heuer <kwzh@gnu.org>
parents: 22800
diff changeset
2036 ;; handled by first or last cases, so don't get Bcc stuff
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2037 (progn (if feedmail-is-a-resend (setq addr-regexp a-re-rtc) (setq addr-regexp a-re-dtc))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2038 (setq feedmail-address-list (feedmail-deduce-address-list feedmail-prepped-text-buffer (point-min) eoh-marker addr-regexp feedmail-address-list)))
22801
e71025b5e000 Avoid using all-caps for non-arguments.
Karl Heuer <kwzh@gnu.org>
parents: 22800
diff changeset
2039 ;; not handled by first or last cases, so also get Bcc stuff
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2040 (progn (if feedmail-is-a-resend (setq addr-regexp a-re-rtcb) (setq addr-regexp a-re-dtcb))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2041 (setq feedmail-address-list (feedmail-deduce-address-list feedmail-prepped-text-buffer (point-min) eoh-marker addr-regexp feedmail-address-list))))
22801
e71025b5e000 Avoid using all-caps for non-arguments.
Karl Heuer <kwzh@gnu.org>
parents: 22800
diff changeset
2042 ;; if we say so, gather the Bcc stuff after the main course
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2043 (if (eq feedmail-deduce-bcc-where 'last)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2044 (progn (if feedmail-is-a-resend (setq addr-regexp a-re-rb) (setq addr-regexp a-re-db))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2045 (setq feedmail-address-list (feedmail-deduce-address-list feedmail-prepped-text-buffer (point-min) eoh-marker addr-regexp feedmail-address-list))))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2046 (if (not feedmail-address-list) (error "FQM: Sending...abandoned, no addressees"))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2047 ;; not needed, but meets user expectations
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2048 (setq feedmail-address-list (nreverse feedmail-address-list))
22801
e71025b5e000 Avoid using all-caps for non-arguments.
Karl Heuer <kwzh@gnu.org>
parents: 22800
diff changeset
2049 ;; Find and handle any Bcc fields.
e71025b5e000 Avoid using all-caps for non-arguments.
Karl Heuer <kwzh@gnu.org>
parents: 22800
diff changeset
2050 (setq bcc-holder (feedmail-accume-n-nuke-header eoh-marker "^Bcc:"))
e71025b5e000 Avoid using all-caps for non-arguments.
Karl Heuer <kwzh@gnu.org>
parents: 22800
diff changeset
2051 (setq resent-bcc-holder (feedmail-accume-n-nuke-header eoh-marker "^Resent-Bcc:"))
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2052 (if (and bcc-holder (not feedmail-nuke-bcc))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2053 (progn (goto-char (point-min))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2054 (insert bcc-holder)))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2055 (if (and resent-bcc-holder (not feedmail-nuke-resent-bcc))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2056 (progn (goto-char (point-min))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2057 (insert resent-bcc-holder)))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2058 (goto-char (point-min))
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2059
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2060 ;; fiddle about, fiddle about, fiddle about....
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2061 (feedmail-fiddle-from)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2062 (feedmail-fiddle-sender)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2063 (feedmail-fiddle-x-mailer)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2064 (feedmail-fiddle-message-id
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2065 (or feedmail-queue-runner-is-active (buffer-file-name feedmail-raw-text-buffer)))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2066 (feedmail-fiddle-date
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2067 (or feedmail-queue-runner-is-active (buffer-file-name feedmail-raw-text-buffer)))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2068 (feedmail-fiddle-list-of-fiddle-plexes feedmail-fiddle-plex-user-list)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2069
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2070 ;; don't send out a blank headers of various sorts
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2071 ;; (this loses on continued line with a blank first line)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2072 (goto-char (point-min))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2073 (and feedmail-nuke-empty-headers ; hey, who's an empty-header?
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2074 (while (re-search-forward "^[A-Za-z0-9-]+:[ \t]*\n" eoh-marker t)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2075 (replace-match ""))))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2076
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2077 (run-hooks 'feedmail-last-chance-hook)
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2078
22801
e71025b5e000 Avoid using all-caps for non-arguments.
Karl Heuer <kwzh@gnu.org>
parents: 22800
diff changeset
2079 (let ((fcc (feedmail-accume-n-nuke-header eoh-marker "^Fcc:"))
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2080 (also-file)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2081 (confirm (cond
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2082 ((eq feedmail-confirm-outgoing 'immediate)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2083 (not feedmail-queue-runner-is-active))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2084 ((eq feedmail-confirm-outgoing 'queued) feedmail-queue-runner-is-active)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2085 (t feedmail-confirm-outgoing))))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2086 (if (or (not confirm) (feedmail-one-last-look feedmail-prepped-text-buffer))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2087 (let ((user-mail-address (feedmail-envelope-deducer eoh-marker)))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2088 (feedmail-give-it-to-buffer-eater)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2089 (if (and (not feedmail-queue-runner-is-active) (setq also-file (buffer-file-name feedmail-raw-text-buffer)))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2090 (progn ; if a file but not running the queue, offer to delete it
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2091 (setq also-file (expand-file-name also-file))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2092 (if (or feedmail-queue-auto-file-nuke
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2093 (y-or-n-p (format "FQM: Delete message file %s? " also-file)))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2094 (save-excursion
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2095 ;; if we delete the affiliated file, get rid
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2096 ;; of the file name association and make sure we
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2097 ;; don't annoy people with a prompt on exit
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2098 (delete-file also-file)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2099 (set-buffer feedmail-raw-text-buffer)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2100 (setq buffer-offer-save nil)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2101 (setq buffer-file-name nil)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2102 )
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2103 )))
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2104 (goto-char (point-min))
22801
e71025b5e000 Avoid using all-caps for non-arguments.
Karl Heuer <kwzh@gnu.org>
parents: 22800
diff changeset
2105 ;; re-insert and handle any Fcc fields (and, optionally, any Bcc).
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2106 (if fcc (let ((default-buffer-file-type feedmail-force-binary-write))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2107 (insert fcc)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2108 (if (not feedmail-nuke-bcc-in-fcc)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2109 (progn (if bcc-holder (insert bcc-holder))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2110 (if resent-bcc-holder (insert resent-bcc-holder))))
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2111
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2112 (run-hooks 'feedmail-before-fcc-hook)
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2113
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2114 (if feedmail-nuke-body-in-fcc
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2115 (progn (goto-char eoh-marker)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2116 (if (natnump feedmail-nuke-body-in-fcc)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2117 (forward-line feedmail-nuke-body-in-fcc))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2118 (delete-region (point) (point-max))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2119 ))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2120 (mail-do-fcc eoh-marker)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2121 )))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2122 (error "FQM: Sending...abandoned") ; user bailed out of one-last-look
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2123 ))) ; unwind-protect body (save-excursion)
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2124
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2125 ;; unwind-protect cleanup forms
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2126 (kill-buffer feedmail-prepped-text-buffer)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2127 (set-buffer feedmail-error-buffer)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2128 (if (zerop (buffer-size)) (kill-buffer feedmail-error-buffer)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2129 (progn (display-buffer feedmail-error-buffer)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2130 ;; read fast ... the meter is running
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2131 (if (and feedmail-queue-runner-is-active feedmail-queue-chatty)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2132 (progn (message "FQM: Sending...failed") (ding t) (sit-for 3)))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2133 (error "FQM: Sending...failed")))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2134 (set-buffer feedmail-raw-text-buffer))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2135 ) ; let
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2136 (if (and feedmail-queue-chatty (not feedmail-queue-runner-is-active))
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2137 (progn
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2138 (feedmail-queue-reminder 'after-immediate)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2139 (sit-for feedmail-queue-chatty-sit-for)))
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2140 )
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2141
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2142
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2143 (defun feedmail-fiddle-header (name value &optional action folding)
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2144 "Internal feedmail function for jamming fields into message header.
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2145 NAME, VALUE, ACTION, and FOLDING are the four elements of a
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2146 fiddle-plex, as described in the documentation for the variable
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2147 feedmail-fiddle-plex-blurb."
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2148 (let ((case-fold-search t)
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2149 (header-colon (concat (regexp-quote name) ":"))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2150 header-regexp eoh-marker has-like ag-like val-like that-point)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2151 (setq header-regexp (concat "^" header-colon))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2152 (setq eoh-marker (feedmail-find-eoh))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2153 (goto-char (point-min))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2154 (setq has-like (re-search-forward header-regexp eoh-marker t))
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2155
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2156 (if (not action) (setq action 'supplement))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2157 (cond
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2158 ((eq action 'supplement)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2159 ;; trim leading/trailing whitespace
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2160 (if (string-match "\\`[ \t\n]+" value)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2161 (setq value (substring value (match-end 0))))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2162 (if (string-match "[ \t\n]+\\'" value)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2163 (setq value (substring value 0 (match-beginning 0))))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2164 (if (> (length value) 0)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2165 (progn
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2166 (if feedmail-fiddle-headers-upwardly
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2167 (goto-char (point-min))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2168 (goto-char eoh-marker))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2169 (setq that-point (point))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2170 (insert name ": " value "\n")
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2171 (if folding (feedmail-fill-this-one that-point (point))))))
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2172
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2173 ((eq action 'replace)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2174 (if has-like (feedmail-accume-n-nuke-header eoh-marker header-regexp))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2175 (feedmail-fiddle-header name value 'supplement folding))
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2176
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2177 ((eq action 'create)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2178 (if (not has-like) (feedmail-fiddle-header name value 'supplement folding)))
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2179
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2180 ((eq action 'combine)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2181 (setq val-like (nth 1 value))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2182 (setq ag-like (or (feedmail-accume-n-nuke-header eoh-marker header-regexp) ""))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2183 ;; get rid of initial header name from first instance (front of string)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2184 (if (string-match (concat header-regexp "[ \t\n]+") ag-like)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2185 (setq ag-like (replace-match "" t t ag-like)))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2186 ;; get rid of embedded header names from subsequent instances
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2187 (while (string-match (concat "\n" header-colon "[ \t\n]+") ag-like)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2188 (setq ag-like (replace-match "\n\t" t t ag-like)))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2189 ;; trim leading/trailing whitespace
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2190 (if (string-match "\\`[ \t\n]+" ag-like)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2191 (setq ag-like (substring ag-like (match-end 0))))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2192 (if (string-match "[ \t\n]+\\'" ag-like)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2193 (setq ag-like (substring ag-like 0 (match-beginning 0))))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2194 ;; if ag-like is not nil and not an empty string, transform it via a function
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2195 ;; call or format operation
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2196 (if (> (length ag-like) 0)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2197 (setq ag-like
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2198 (cond
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2199 ((and (symbolp val-like) (fboundp val-like))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2200 (funcall val-like name ag-like))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2201 ((stringp val-like)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2202 (format val-like ag-like))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2203 (t nil))))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2204 (feedmail-fiddle-header name (concat (nth 0 value) ag-like (nth 2 value)) 'supplement folding)))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2205 ))
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2206
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2207 (defun feedmail-give-it-to-buffer-eater ()
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2208 (save-excursion
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2209 (if feedmail-enable-spray
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2210 (mapcar
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2211 '(lambda (feedmail-spray-this-address)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2212 (let ((spray-buffer (get-buffer-create " *FQM Outgoing Email Spray*")))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2213 (save-excursion
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2214 (set-buffer spray-buffer)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2215 (erase-buffer)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2216 ;; not life's most efficient methodology, but spraying isn't
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2217 ;; an every-5-minutes event either
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2218 (insert-buffer feedmail-prepped-text-buffer)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2219 ;; There's a good case to me made that each separate transmission of
22801
e71025b5e000 Avoid using all-caps for non-arguments.
Karl Heuer <kwzh@gnu.org>
parents: 22800
diff changeset
2220 ;; a message in the spray should have a distinct Message-Id:. There
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2221 ;; is also a less compelling argument in the other direction. I think
22801
e71025b5e000 Avoid using all-caps for non-arguments.
Karl Heuer <kwzh@gnu.org>
parents: 22800
diff changeset
2222 ;; they technically should have distinct Message-Id:s, but I doubt that
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2223 ;; anyone cares, practically. If someone complains about it, I'll add
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2224 ;; it.
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2225 (feedmail-fiddle-list-of-spray-fiddle-plexes feedmail-spray-address-fiddle-plex-list)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2226 ;; this (let ) is just in case some buffer eater
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2227 ;; is cheating and using the global variable name instead
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2228 ;; of its argument to find the buffer
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2229 (let ((feedmail-prepped-text-buffer spray-buffer))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2230 (funcall feedmail-buffer-eating-function
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2231 feedmail-prepped-text-buffer
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2232 feedmail-error-buffer
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2233 (list feedmail-spray-this-address))))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2234 (kill-buffer spray-buffer)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2235 ))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2236 feedmail-address-list)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2237 (funcall feedmail-buffer-eating-function
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2238 feedmail-prepped-text-buffer
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2239 feedmail-error-buffer
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2240 feedmail-address-list))))
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2241
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2242
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2243 (defun feedmail-envelope-deducer (eoh-marker)
22609
c2ed862173da Style and doc fixes.
Karl Heuer <kwzh@gnu.org>
parents: 22552
diff changeset
2244 "If feedmail-deduce-envelope-from is false, simply return `user-mail-address'.
22801
e71025b5e000 Avoid using all-caps for non-arguments.
Karl Heuer <kwzh@gnu.org>
parents: 22800
diff changeset
2245 Else, look for Sender: or From: (or Resent-*) and
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2246 return that value."
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2247 (if (not feedmail-deduce-envelope-from)
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2248 user-mail-address
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2249 (let ((from-list))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2250 (setq from-list
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2251 (feedmail-deduce-address-list
22801
e71025b5e000 Avoid using all-caps for non-arguments.
Karl Heuer <kwzh@gnu.org>
parents: 22800
diff changeset
2252 (current-buffer) (point-min) eoh-marker (if feedmail-is-a-resend "^Resent-Sender:" "^Sender:")
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2253 from-list))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2254 (if (not from-list)
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2255 (setq from-list
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2256 (feedmail-deduce-address-list
22801
e71025b5e000 Avoid using all-caps for non-arguments.
Karl Heuer <kwzh@gnu.org>
parents: 22800
diff changeset
2257 (current-buffer) (point-min) eoh-marker (if feedmail-is-a-resend "^Resent-From:" "^From:")
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2258 from-list)))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2259 (if (and from-list (car from-list)) (car from-list) user-mail-address))))
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2260
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2261
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2262 (defun feedmail-fiddle-from ()
22801
e71025b5e000 Avoid using all-caps for non-arguments.
Karl Heuer <kwzh@gnu.org>
parents: 22800
diff changeset
2263 "Fiddle From:."
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2264 ;; default is to fall off the end of the list and do nothing
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2265 (cond
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2266 ;; nil means do nothing
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2267 ((eq nil feedmail-from-line) nil)
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2268 ;; t is the same a using the default computation, so compute it and recurse
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2269 ;; user-full-name suggested by kpc@ptolemy.arc.nasa.gov (=Kimball Collins)
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2270 ;; improvement using user-mail-address suggested by
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2271 ;; gray@austin.apc.slb.com (Douglas Gray Stephens)
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2272 ((eq t feedmail-from-line)
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2273 (let ((feedmail-from-line
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2274 (let ((at-stuff
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2275 (if user-mail-address user-mail-address (concat (user-login-name) "@" (system-name)))))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2276 (cond
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2277 ((eq mail-from-style nil) at-stuff)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2278 ((eq mail-from-style 'parens) (concat at-stuff " (" (user-full-name) ")"))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2279 ((eq mail-from-style 'angles) (concat "\"" (user-full-name) "\" <" at-stuff ">"))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2280 ))))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2281 (feedmail-fiddle-from)))
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2282
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2283 ;; if it's a string, simply make a fiddle-plex out of it and recurse
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2284 ((stringp feedmail-from-line)
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2285 (let ((feedmail-from-line (list "ignored" feedmail-from-line 'create)))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2286 (feedmail-fiddle-from)))
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2287
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2288 ;; if it's a function, call it and recurse with the resulting value
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2289 ((and (symbolp feedmail-from-line) (fboundp feedmail-from-line))
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2290 (let ((feedmail-from-line (funcall feedmail-from-line)))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2291 (feedmail-fiddle-from)))
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2292
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2293 ;; if it's a list, it must be a fiddle-plex -- so fiddle, man, fiddle
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2294 ((listp feedmail-from-line)
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2295 (feedmail-fiddle-header
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2296 (if feedmail-is-a-resend "Resent-From" "From")
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2297 (nth 1 feedmail-from-line) ; value
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2298 (nth 2 feedmail-from-line) ; action
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2299 (nth 3 feedmail-from-line))))) ; folding
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2300
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2301
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2302 (defun feedmail-fiddle-sender ()
22801
e71025b5e000 Avoid using all-caps for non-arguments.
Karl Heuer <kwzh@gnu.org>
parents: 22800
diff changeset
2303 "Fiddle Sender:."
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2304 ;; default is to fall off the end of the list and do nothing
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2305 (cond
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2306 ;; nil means do nothing
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2307 ((eq nil feedmail-sender-line) nil)
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2308 ;; t is not allowed, but handled it just to avoid bugs later
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2309 ((eq t feedmail-sender-line) nil)
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2310
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2311 ;; if it's a string, simply make a fiddle-plex out of it and recurse
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2312 ((stringp feedmail-sender-line)
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2313 (let ((feedmail-sender-line (list "ignored" feedmail-sender-line 'create)))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2314 (feedmail-fiddle-sender)))
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2315
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2316 ;; if it's a function, call it and recurse with the resulting value
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2317 ((and (symbolp feedmail-sender-line) (fboundp feedmail-sender-line))
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2318 (let ((feedmail-sender-line (funcall feedmail-sender-line)))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2319 (feedmail-fiddle-sender)))
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2320
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2321 ;; if it's a list, it must be a fiddle-plex -- so fiddle, man, fiddle
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2322 ((listp feedmail-sender-line)
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2323 (feedmail-fiddle-header
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2324 (if feedmail-is-a-resend "Resent-Sender" "Sender")
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2325 (nth 1 feedmail-sender-line) ; value
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2326 (nth 2 feedmail-sender-line) ; action
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2327 (nth 3 feedmail-sender-line))))) ; folding
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2328
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2329
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2330 (defun feedmail-default-date-generator (maybe-file)
22801
e71025b5e000 Avoid using all-caps for non-arguments.
Karl Heuer <kwzh@gnu.org>
parents: 22800
diff changeset
2331 "Default function for generating Date: header contents."
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2332 (let ((date-time))
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2333 (if (and (not feedmail-queue-use-send-time-for-date) maybe-file)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2334 (setq date-time (nth 5 (file-attributes maybe-file))))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2335 (feedmail-rfc822-date date-time))
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2336 )
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2337
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2338
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2339 (defun feedmail-fiddle-date (maybe-file)
22801
e71025b5e000 Avoid using all-caps for non-arguments.
Karl Heuer <kwzh@gnu.org>
parents: 22800
diff changeset
2340 "Fiddle Date:. See documentation of feedmail-date-generator."
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2341 ;; default is to fall off the end of the list and do nothing
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2342 (cond
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2343 ;; nil means do nothing
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2344 ((eq nil feedmail-date-generator) nil)
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2345 ;; t is the same a using the function feedmail-default-date-generator, so let it and recurse
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2346 ((eq t feedmail-date-generator)
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2347 (let ((feedmail-date-generator (feedmail-default-date-generator maybe-file)))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2348 (feedmail-fiddle-date maybe-file)))
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2349
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2350 ;; if it's a string, simply make a fiddle-plex out of it and recurse
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2351 ((stringp feedmail-date-generator)
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2352 (let ((feedmail-date-generator (list "ignored" feedmail-date-generator 'create)))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2353 (feedmail-fiddle-date maybe-file)))
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2354
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2355 ;; if it's a function, call it and recurse with the resulting value
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2356 ((and (symbolp feedmail-date-generator) (fboundp feedmail-date-generator))
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2357 (let ((feedmail-date-generator (funcall feedmail-date-generator maybe-file)))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2358 (feedmail-fiddle-date maybe-file)))
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2359
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2360 ;; if it's a list, it must be a fiddle-plex -- so fiddle, man, fiddle
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2361 ((listp feedmail-date-generator)
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2362 (feedmail-fiddle-header
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2363 (if feedmail-is-a-resend "Resent-Date" "Date")
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2364 (nth 1 feedmail-date-generator) ; value
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2365 (nth 2 feedmail-date-generator) ; action
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2366 (nth 3 feedmail-date-generator))))) ; folding
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2367
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2368
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2369 (defun feedmail-default-message-id-generator (maybe-file)
22801
e71025b5e000 Avoid using all-caps for non-arguments.
Karl Heuer <kwzh@gnu.org>
parents: 22800
diff changeset
2370 "Default function for generating Message-Id: header contents.
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2371 Based on a date and a sort of random number for tie breaking. Unless
22609
c2ed862173da Style and doc fixes.
Karl Heuer <kwzh@gnu.org>
parents: 22552
diff changeset
2372 feedmail-message-id-suffix is defined, uses `user-mail-address', so be
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2373 sure it's set."
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2374 (let ((date-time)
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2375 (end-stuff (if feedmail-message-id-suffix feedmail-message-id-suffix user-mail-address)))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2376 (if (string-match "^\\(.*\\)@" end-stuff)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2377 (setq end-stuff
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2378 (concat (if (equal (match-beginning 1) (match-end 1)) "" "-") end-stuff))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2379 (setq end-stuff (concat "@" end-stuff)))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2380 (if (and (not feedmail-queue-use-send-time-for-message-id) maybe-file)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2381 (setq date-time (nth 5 (file-attributes maybe-file))))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2382 (format "<%d-%s%s%s>"
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2383 (mod (random) 10000)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2384 (format-time-string "%a%d%b%Y%H%M%S" date-time)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2385 (feedmail-rfc822-time-zone date-time)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2386 end-stuff))
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2387 )
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2388
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2389 (defun feedmail-fiddle-message-id (maybe-file)
22801
e71025b5e000 Avoid using all-caps for non-arguments.
Karl Heuer <kwzh@gnu.org>
parents: 22800
diff changeset
2390 "Fiddle Message-Id:. See documentation of feedmail-message-id-generator."
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2391 ;; default is to fall off the end of the list and do nothing
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2392 (cond
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2393 ;; nil means do nothing
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2394 ((eq nil feedmail-message-id-generator) nil)
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2395 ;; t is the same a using the function feedmail-default-message-id-generator, so let it and recurse
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2396 ((eq t feedmail-message-id-generator)
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2397 (let ((feedmail-message-id-generator (feedmail-default-message-id-generator maybe-file)))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2398 (feedmail-fiddle-message-id maybe-file)))
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2399
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2400 ;; if it's a string, simply make a fiddle-plex out of it and recurse
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2401 ((stringp feedmail-message-id-generator)
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2402 (let ((feedmail-message-id-generator (list "ignored" feedmail-message-id-generator 'create)))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2403 (feedmail-fiddle-message-id maybe-file)))
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2404
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2405 ;; if it's a function, call it and recurse with the resulting value
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2406 ((and (symbolp feedmail-message-id-generator) (fboundp feedmail-message-id-generator))
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2407 (let ((feedmail-message-id-generator (funcall feedmail-message-id-generator maybe-file)))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2408 (feedmail-fiddle-message-id maybe-file)))
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2409
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2410 ;; if it's a list, it must be a fiddle-plex -- so fiddle, man, fiddle
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2411 ((listp feedmail-message-id-generator)
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2412 (feedmail-fiddle-header
22801
e71025b5e000 Avoid using all-caps for non-arguments.
Karl Heuer <kwzh@gnu.org>
parents: 22800
diff changeset
2413 (if feedmail-is-a-resend "Resent-Message-Id" "Message-Id")
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2414 (nth 1 feedmail-message-id-generator) ; value
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2415 (nth 2 feedmail-message-id-generator) ; action
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2416 (nth 3 feedmail-message-id-generator))))) ; folding
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2417
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2418
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2419 (defun feedmail-default-x-mailer-generator ()
22801
e71025b5e000 Avoid using all-caps for non-arguments.
Karl Heuer <kwzh@gnu.org>
parents: 22800
diff changeset
2420 "Default function for generating X-Mailer: header contents."
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2421 (concat
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2422 (let ((case-fold-search t)) (if (string-match "emacs" emacs-version) "" "emacs "))
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2423 emacs-version " (via feedmail " feedmail-patch-level
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2424 (if feedmail-queue-runner-is-active " Q" " I")
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2425 (if feedmail-enable-spray "S" "")
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2426 (if feedmail-x-mailer-line-user-appendage ") " ")")
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2427 feedmail-x-mailer-line-user-appendage))
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2428
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2429
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2430 (defun feedmail-fiddle-x-mailer ()
22801
e71025b5e000 Avoid using all-caps for non-arguments.
Karl Heuer <kwzh@gnu.org>
parents: 22800
diff changeset
2431 "Fiddle X-Mailer:. See documentation of feedmail-x-mailer-line."
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2432 ;; default is to fall off the end of the list and do nothing
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2433 (cond
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2434 ;; t is the same a using the function feedmail-default-x-mailer-generator, so let it and recurse
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2435 ((eq t feedmail-x-mailer-line)
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2436 (let ((feedmail-x-mailer-line (feedmail-default-x-mailer-generator)))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2437 (feedmail-fiddle-x-mailer)))
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2438
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2439 ;; if it's a string, simply make a fiddle-plex out of it and recurse
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2440 ((stringp feedmail-x-mailer-line)
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2441 (let ((feedmail-x-mailer-line (list "ignored" (list feedmail-x-mailer-line ";\n\t%s") 'combine)))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2442 (feedmail-fiddle-x-mailer)))
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2443
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2444 ;; if it's a function, call it and recurse with the resulting value
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2445 ((and (symbolp feedmail-x-mailer-line) (fboundp feedmail-x-mailer-line))
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2446 (let ((feedmail-x-mailer-line (funcall feedmail-x-mailer-line)))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2447 (feedmail-fiddle-x-mailer)))
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2448
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2449 ;; if it's a list, it must be a fiddle-plex -- so fiddle, man, fiddle
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2450 ((listp feedmail-x-mailer-line)
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2451 (feedmail-fiddle-header
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2452 (if feedmail-is-a-resend "X-Resent-Mailer" "X-Mailer")
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2453 (nth 1 feedmail-x-mailer-line) ; value
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2454 (nth 2 feedmail-x-mailer-line) ; action
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2455 (nth 3 feedmail-x-mailer-line))))) ; folding
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2456
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2457
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2458 (defun feedmail-fiddle-spray-address (addy-plex)
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2459 "Fiddle header for single spray address. Uses feedmail-spray-this-address."
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2460 ;; default is to fall off the end of the list and do nothing
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2461 (cond
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2462 ;; nil means do nothing
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2463 ((eq nil addy-plex) nil)
22801
e71025b5e000 Avoid using all-caps for non-arguments.
Karl Heuer <kwzh@gnu.org>
parents: 22800
diff changeset
2464 ;; t means the same as using "To:" and unembellished addy
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2465 ((eq t addy-plex)
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2466 (let ((addy-plex (list "To" feedmail-spray-this-address)))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2467 (feedmail-fiddle-spray-address addy-plex)))
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2468
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2469 ;; if it's a string, simply make a fiddle-plex out of it and recurse, assuming
22801
e71025b5e000 Avoid using all-caps for non-arguments.
Karl Heuer <kwzh@gnu.org>
parents: 22800
diff changeset
2470 ;; the string names a header field (e.g., "To")
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2471 ((stringp addy-plex)
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2472 (let ((addy-plex (list addy-plex feedmail-spray-this-address)))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2473 (feedmail-fiddle-spray-address addy-plex)))
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2474
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2475 ;; if it's a function, call it and recurse with the resulting value
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2476 ((and (symbolp addy-plex) (fboundp addy-plex))
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2477 (let ((addy-plex (funcall addy-plex)))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2478 (feedmail-fiddle-spray-address addy-plex)))
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2479
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2480 ;; if it's a list, it must be a fiddle-plex -- so fiddle, man, fiddle
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2481 ((listp addy-plex)
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2482 (feedmail-fiddle-header
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2483 (nth 0 addy-plex) ; name
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2484 (nth 1 addy-plex) ; value
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2485 (nth 2 addy-plex) ; action
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2486 (nth 3 addy-plex))))) ; folding
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2487
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2488
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2489 (defun feedmail-fiddle-list-of-spray-fiddle-plexes (list-of-fiddle-plexes)
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2490 "Fiddling based on a list of fiddle-plexes for spraying."
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2491 ;; default is to fall off the end of the list and do nothing
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2492 (let ((lofp list-of-fiddle-plexes) fp)
22609
c2ed862173da Style and doc fixes.
Karl Heuer <kwzh@gnu.org>
parents: 22552
diff changeset
2493 (if (listp lofp)
c2ed862173da Style and doc fixes.
Karl Heuer <kwzh@gnu.org>
parents: 22552
diff changeset
2494 (while lofp
c2ed862173da Style and doc fixes.
Karl Heuer <kwzh@gnu.org>
parents: 22552
diff changeset
2495 (setq fp (car lofp))
c2ed862173da Style and doc fixes.
Karl Heuer <kwzh@gnu.org>
parents: 22552
diff changeset
2496 (setq lofp (cdr lofp))
c2ed862173da Style and doc fixes.
Karl Heuer <kwzh@gnu.org>
parents: 22552
diff changeset
2497 (feedmail-fiddle-spray-address fp))
c2ed862173da Style and doc fixes.
Karl Heuer <kwzh@gnu.org>
parents: 22552
diff changeset
2498 (feedmail-fiddle-spray-address lofp))))
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2499
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2500
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2501 (defun feedmail-fiddle-list-of-fiddle-plexes (list-of-fiddle-plexes)
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2502 "Fiddling based on a list of fiddle-plexes. Values t, nil, and string are pointless."
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2503 ;; default is to fall off the end of the list and do nothing
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2504 (let ((lofp list-of-fiddle-plexes) fp)
22609
c2ed862173da Style and doc fixes.
Karl Heuer <kwzh@gnu.org>
parents: 22552
diff changeset
2505 (while lofp
c2ed862173da Style and doc fixes.
Karl Heuer <kwzh@gnu.org>
parents: 22552
diff changeset
2506 (setq fp (car lofp))
c2ed862173da Style and doc fixes.
Karl Heuer <kwzh@gnu.org>
parents: 22552
diff changeset
2507 (setq lofp (cdr lofp))
c2ed862173da Style and doc fixes.
Karl Heuer <kwzh@gnu.org>
parents: 22552
diff changeset
2508 (cond
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2509
22609
c2ed862173da Style and doc fixes.
Karl Heuer <kwzh@gnu.org>
parents: 22552
diff changeset
2510 ;; if it's a function, call it and recurse with the resulting value
c2ed862173da Style and doc fixes.
Karl Heuer <kwzh@gnu.org>
parents: 22552
diff changeset
2511 ((and (symbolp fp) (fboundp fp))
c2ed862173da Style and doc fixes.
Karl Heuer <kwzh@gnu.org>
parents: 22552
diff changeset
2512 (let ((lofp (list (funcall fp)))) (feedmail-fiddle-list-of-fiddle-plexes lofp)))
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2513
22609
c2ed862173da Style and doc fixes.
Karl Heuer <kwzh@gnu.org>
parents: 22552
diff changeset
2514 ;; if it's a list, it must be a fiddle-plex -- so fiddle, man, fiddle
c2ed862173da Style and doc fixes.
Karl Heuer <kwzh@gnu.org>
parents: 22552
diff changeset
2515 ((listp fp)
c2ed862173da Style and doc fixes.
Karl Heuer <kwzh@gnu.org>
parents: 22552
diff changeset
2516 (feedmail-fiddle-header
c2ed862173da Style and doc fixes.
Karl Heuer <kwzh@gnu.org>
parents: 22552
diff changeset
2517 (nth 0 fp)
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2518 (nth 1 fp) ; value
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2519 (nth 2 fp) ; action
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2520 (nth 3 fp))))))) ; folding
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2521
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2522
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2523 (defun feedmail-accume-n-nuke-header (header-end header-regexp)
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2524 "Delete headers matching a regexp and their continuation lines.
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2525 There may be multiple such lines, and each may have arbitrarily
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2526 many continuation lines. Return an accumulation of the deleted
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2527 headers, including the intervening newlines."
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2528 (let ((case-fold-search t) (dropout))
22609
c2ed862173da Style and doc fixes.
Karl Heuer <kwzh@gnu.org>
parents: 22552
diff changeset
2529 (save-excursion
c2ed862173da Style and doc fixes.
Karl Heuer <kwzh@gnu.org>
parents: 22552
diff changeset
2530 (goto-char (point-min))
c2ed862173da Style and doc fixes.
Karl Heuer <kwzh@gnu.org>
parents: 22552
diff changeset
2531 ;; iterate over all matching lines
c2ed862173da Style and doc fixes.
Karl Heuer <kwzh@gnu.org>
parents: 22552
diff changeset
2532 (while (re-search-forward header-regexp header-end t)
c2ed862173da Style and doc fixes.
Karl Heuer <kwzh@gnu.org>
parents: 22552
diff changeset
2533 (forward-line 1)
c2ed862173da Style and doc fixes.
Karl Heuer <kwzh@gnu.org>
parents: 22552
diff changeset
2534 (setq dropout (concat dropout (buffer-substring (match-beginning 0) (point))))
c2ed862173da Style and doc fixes.
Karl Heuer <kwzh@gnu.org>
parents: 22552
diff changeset
2535 (delete-region (match-beginning 0) (point))
c2ed862173da Style and doc fixes.
Karl Heuer <kwzh@gnu.org>
parents: 22552
diff changeset
2536 ;; get rid of any continuation lines
c2ed862173da Style and doc fixes.
Karl Heuer <kwzh@gnu.org>
parents: 22552
diff changeset
2537 (while (and (looking-at "^[ \t].*\n") (< (point) header-end))
c2ed862173da Style and doc fixes.
Karl Heuer <kwzh@gnu.org>
parents: 22552
diff changeset
2538 (forward-line 1)
c2ed862173da Style and doc fixes.
Karl Heuer <kwzh@gnu.org>
parents: 22552
diff changeset
2539 (setq dropout (concat dropout (buffer-substring (match-beginning 0) (point))))
c2ed862173da Style and doc fixes.
Karl Heuer <kwzh@gnu.org>
parents: 22552
diff changeset
2540 (replace-match ""))))
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2541 (identity dropout)))
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2542
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2543 (defun feedmail-fill-to-cc-function (header-end)
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2544 "Smart filling of address headers (don't be fooled by the name).
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2545 The filling tries to avoid splitting lines except at commas. This
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2546 avoids, in particular, splitting within parenthesized comments in
22801
e71025b5e000 Avoid using all-caps for non-arguments.
Karl Heuer <kwzh@gnu.org>
parents: 22800
diff changeset
2547 addresses. Headers filled include From:, Reply-To:, To:, Cc:, Bcc:,
e71025b5e000 Avoid using all-caps for non-arguments.
Karl Heuer <kwzh@gnu.org>
parents: 22800
diff changeset
2548 Resent-To:, Resent-Cc:, and Resent-Bcc:."
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2549 (let ((case-fold-search t)
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2550 this-line
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2551 this-line-end)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2552 (save-excursion
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2553 (goto-char (point-min))
22801
e71025b5e000 Avoid using all-caps for non-arguments.
Karl Heuer <kwzh@gnu.org>
parents: 22800
diff changeset
2554 ;; iterate over all To:/Cc:, etc, lines
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2555 (while
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2556 (re-search-forward
22801
e71025b5e000 Avoid using all-caps for non-arguments.
Karl Heuer <kwzh@gnu.org>
parents: 22800
diff changeset
2557 "^\\(From:\\|Reply-To:\\|To:\\|Cc:\\|Bcc:\\|Resent-To:\\|Resent-Cc:\\|Resent-Bcc:\\)"
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2558 header-end t)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2559 (setq this-line (match-beginning 0))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2560 ;; replace 0 or more leading spaces with a single space
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2561 (and (looking-at "[ \t]*") (replace-match " "))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2562 (forward-line 1)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2563 ;; get any continuation lines
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2564 (while (and (looking-at "[ \t]+") (< (point) header-end))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2565 (forward-line 1))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2566 (setq this-line-end (point-marker))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2567 (save-excursion (feedmail-fill-this-one this-line this-line-end))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2568 ))))
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2569
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2570
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2571 (defun feedmail-fill-this-one (this-line this-line-end)
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2572 "In-place smart filling of the region bounded by the two arguments."
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2573 (let ((fill-prefix "\t")
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2574 (fill-column feedmail-fill-to-cc-fill-column))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2575 ;; The general idea is to break only on commas. Collapse
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2576 ;; multiple whitespace to a single blank; change
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2577 ;; all the blanks to something unprintable; change the
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2578 ;; commas to blanks; fill the region; change it back.
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2579 (goto-char this-line)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2580 (while (re-search-forward "\\s-+" (1- this-line-end) t)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2581 (replace-match " "))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2582
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2583 (subst-char-in-region this-line this-line-end ? 2 t) ; blank->C-b
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2584 (subst-char-in-region this-line this-line-end ?, ? t) ; comma->blank
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2585
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2586 (fill-region-as-paragraph this-line this-line-end)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2587
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2588 (subst-char-in-region this-line this-line-end ? ?, t) ; comma<-blank
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2589 (subst-char-in-region this-line this-line-end 2 ? t) ; blank<-C-b
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2590
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2591 ;; look out for missing commas before continuation lines
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2592 (goto-char this-line)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2593 (while (re-search-forward "\\([^,]\\)\n\t[ ]*" this-line-end t)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2594 (replace-match "\\1,\n\t"))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2595 ))
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2596
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2597
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2598 (require 'mail-utils) ; pick up mail-strip-quoted-names
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2599 (defun feedmail-deduce-address-list (message-buffer header-start header-end addr-regexp address-list)
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2600 "Get address list with all comments and other excitement trimmed.
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2601 Addresses are collected only from headers whose names match the fourth
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2602 argument Returns a list of strings. Duplicate addresses will have
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2603 been weeded out."
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2604 (let ((simple-address)
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2605 (address-blob)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2606 (this-line)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2607 (this-line-end))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2608 (unwind-protect
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2609 (save-excursion
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2610 (set-buffer (get-buffer-create " *FQM scratch*")) (erase-buffer)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2611 (insert-buffer-substring message-buffer header-start header-end)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2612 (goto-char (point-min))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2613 (let ((case-fold-search t))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2614 (while (re-search-forward addr-regexp (point-max) t)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2615 (replace-match "")
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2616 (setq this-line (match-beginning 0))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2617 (forward-line 1)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2618 ;; get any continuation lines
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2619 (while (and (looking-at "^[ \t]+") (< (point) (point-max)))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2620 (forward-line 1))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2621 (setq this-line-end (point-marker))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2622 ;; only keep if we don't have it already
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2623 (setq address-blob
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2624 (mail-strip-quoted-names (buffer-substring this-line this-line-end)))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2625 (while (string-match "\\([, \t\n\r]*\\)\\([^, \t\n\r]+\\)" address-blob)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2626 (setq simple-address (substring address-blob (match-beginning 2) (match-end 2)))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2627 (setq address-blob (replace-match "" t t address-blob))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2628 (if (not (member simple-address address-list))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2629 (add-to-list 'address-list simple-address)))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2630 ))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2631 (kill-buffer nil)))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2632 (identity address-list)))
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2633
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2634
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2635 (defun feedmail-one-last-look (feedmail-prepped-text-buffer)
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2636 "Offer the user one last chance to give it up."
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2637 (save-excursion
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2638 (save-window-excursion
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2639 (switch-to-buffer feedmail-prepped-text-buffer)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2640 (if (and (fboundp 'y-or-n-p-with-timeout) (numberp feedmail-confirm-outgoing-timeout))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2641 (y-or-n-p-with-timeout
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2642 "FQM: Send this email? "
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2643 (abs feedmail-confirm-outgoing-timeout)
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2644 (> feedmail-confirm-outgoing-timeout 0))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2645 (y-or-n-p "FQM: Send this email? "))
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2646 )))
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2647
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2648 (defun feedmail-fqm-p (might-be)
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2649 "Internal; does filename end with FQM suffix?"
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2650 (string-match (concat (regexp-quote feedmail-queue-fqm-suffix) "$") might-be))
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2651
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2652
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2653 (defun feedmail-find-eoh (&optional noerror)
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2654 "Internal; finds the end of message header fields, returns mark just before it"
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2655 (save-excursion
22799
81edc8f95cd9 Entire file: Fix indentation.
Karl Heuer <kwzh@gnu.org>
parents: 22609
diff changeset
2656 (goto-char (point-min))
26778
6dc236826c61 (feedmail-find-eoh): Take
Gerd Moellmann <gerd@gnu.org>
parents: 23409
diff changeset
2657 (when (or (re-search-forward (concat "^"
6dc236826c61 (feedmail-find-eoh): Take
Gerd Moellmann <gerd@gnu.org>
parents: 23409
diff changeset
2658 (regexp-quote mail-header-separator)
6dc236826c61 (feedmail-find-eoh): Take
Gerd Moellmann <gerd@gnu.org>
parents: 23409
diff changeset
2659 "\n")
6dc236826c61 (feedmail-find-eoh): Take
Gerd Moellmann <gerd@gnu.org>
parents: 23409
diff changeset
2660 nil noerror)
6dc236826c61 (feedmail-find-eoh): Take
Gerd Moellmann <gerd@gnu.org>
parents: 23409
diff changeset
2661 (and feedmail-queue-alternative-mail-header-separator
6dc236826c61 (feedmail-find-eoh): Take
Gerd Moellmann <gerd@gnu.org>
parents: 23409
diff changeset
2662 (re-search-forward
6dc236826c61 (feedmail-find-eoh): Take
Gerd Moellmann <gerd@gnu.org>
parents: 23409
diff changeset
2663 (concat "^"
6dc236826c61 (feedmail-find-eoh): Take
Gerd Moellmann <gerd@gnu.org>
parents: 23409
diff changeset
2664 (regexp-quote
6dc236826c61 (feedmail-find-eoh): Take
Gerd Moellmann <gerd@gnu.org>
parents: 23409
diff changeset
2665 feedmail-queue-alternative-mail-header-separator)
6dc236826c61 (feedmail-find-eoh): Take
Gerd Moellmann <gerd@gnu.org>
parents: 23409
diff changeset
2666 "\n")
6dc236826c61 (feedmail-find-eoh): Take
Gerd Moellmann <gerd@gnu.org>
parents: 23409
diff changeset
2667 nil noerror)))
6dc236826c61 (feedmail-find-eoh): Take
Gerd Moellmann <gerd@gnu.org>
parents: 23409
diff changeset
2668 (forward-line -1)
6dc236826c61 (feedmail-find-eoh): Take
Gerd Moellmann <gerd@gnu.org>
parents: 23409
diff changeset
2669 (point-marker))))
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2670
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2671 (provide 'feedmail)
38436
b174db545cfd Some fixes to follow coding conventions.
Pavel Janík <Pavel@Janik.cz>
parents: 35616
diff changeset
2672
22513
bbf2827a9356 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2673 ;;; feedmail.el ends here