}
switch (ctl->server.retrieveerror) {
- case RE_ABORT: stringdump("retrieve-error", "abort"); break;
- case RE_CONTINUE: stringdump("retrieve-error", "continue"); break;
- case RE_MARKSEEN: stringdump("retrieve-error", "markseen"); break;
+ case RE_ABORT: stringdump("retrieveerror", "abort"); break;
+ case RE_CONTINUE: stringdump("retrieveerror", "continue"); break;
+ case RE_MARKSEEN: stringdump("retrieveerror", "markseen"); break;
}
indent(0);
# Matthias Andree <matthias.andree@gmx.de>
# Requires Python with Tkinter, and the following OS-dependent services:
# posix, posixpath, socket
-version = "1.57"
+version = "1.58"
from Tkinter import *
from Dialog import *
self.esmtppassword = None # ESMTP 2554 password
self.tracepolls = FALSE # Add trace-poll info to headers
self.badheader = FALSE # Pass messages with bad headers on?
+ self.retrieveerror = 'abort' # Policy when message retrieval errors encountered
self.users = [] # List of user entries for site
Server.typemap = (
('pollname', 'String'),
('esmtppassword', 'String'),
('principal', 'String'),
('tracepolls','Boolean'),
- ('badheader', 'Boolean'))
+ ('badheader', 'Boolean'),
+ ('retrieveerror', 'String'))
def dump(self, folded):
res = ""
res = res + "\n"
if self.badheader:
res = res + "bad-header accept "
+ if self.retrieveerror == 'continue':
+ res = res + "retrieve-error continue "
+ if self.retrieveerror == 'markseen':
+ res = res + "retrieve-error markseen "
if res[-1] == " ": res = res[0:-1]
If it is off, fetchmail will only query this host when it is given as
a command-line argument.
+The `Retrieve Error Policy' specifies how server errors during
+message retrieval are handled. The default behaviour is to abort the
+current session. Both the continue and markseen options will skip
+the message with the error, but continue the session allowing for
+downloading of subsequent messages. Additionally, the markseen
+option will mark the skipped message as seen.
+
The `True name of server' box should specify the actual DNS name
to query. By default this is the same as the poll name.
Checkbutton(ctlwin, text='Poll ' + host + ' normally?', variable=self.active).pack(side=TOP)
Checkbutton(ctlwin, text='Pass messages with bad headers?',
variable=self.badheader).pack(side=TOP)
+ retrieveerrorlist = ['abort', 'continue', 'markseen']
+ Label(ctlwin, text="Retrieve Error Policy").pack(side=TOP)
+ ButtonBar(ctlwin, '', self.retrieveerror, retrieveerrorlist, 1, None)
LabeledEntry(ctlwin, 'True name of ' + host + ':',
self.via, leftwidth).pack(side=TOP, fill=X)
LabeledEntry(ctlwin, 'Cycles to skip between polls:',