aboutsummaryrefslogtreecommitdiffstats
path: root/driver.c
diff options
context:
space:
mode:
authorMatthias Andree <matthias.andree@gmx.de>2009-05-24 14:45:17 +0000
committerMatthias Andree <matthias.andree@gmx.de>2009-05-24 14:45:17 +0000
commit570e3ef1831cdb13a1baf846029ffa1cb7ec1b79 (patch)
treedd13bcd23351a7ac931457b9535a2b670dc9dda8 /driver.c
parentc74e0b613d3d4782a7ad34af1f9e14ebb3776e1b (diff)
downloadfetchmail-570e3ef1831cdb13a1baf846029ffa1cb7ec1b79.tar.gz
fetchmail-570e3ef1831cdb13a1baf846029ffa1cb7ec1b79.tar.bz2
fetchmail-570e3ef1831cdb13a1baf846029ffa1cb7ec1b79.zip
Treat permanent delivery errors as temporary (configurable).
Fetchmail no longer drops permanently undelivered messages by default, to match historic documentation. It does this by adding a new "softbounce" option, see below. Fixes Debian Bug#471283, demotes Debian Bug#494418 to wishlist. There is a new "softbounce" global option that prevents the deletion of messages that have not been forwarded. It defaults to "true" for fetchmail 6.3.X in order to match historic documentation. This may change its default in the next major release. NOTE: untested. svn path=/branches/BRANCH_6-3/; revision=5315
Diffstat (limited to 'driver.c')
-rw-r--r--driver.c17
1 files changed, 9 insertions, 8 deletions
diff --git a/driver.c b/driver.c
index 9f332f80..4a2e3233 100644
--- a/driver.c
+++ b/driver.c
@@ -765,16 +765,17 @@ static int fetch_messages(int mailserver_socket, struct query *ctl,
flagthemail:
/*
- * At this point in flow of control, either
- * we've bombed on a protocol error or had
- * delivery refused by the SMTP server
- * (unlikely -- I've never seen it) or we've
- * seen `accepted for delivery' and the
- * message is shipped. It's safe to mark the
- * message seen and delete it on the server
- * now.
+ * At this point in flow of control,
+ * either we've bombed on a protocol error
+ * or had delivery refused by the SMTP server
+ * or we've seen `accepted for delivery' and the message is shipped.
+ * It's safe to mark the message seen and delete it on the server now.
*/
+ /* in softbounce mode, suppress deletion and marking as seen */
+ if (suppress_forward)
+ suppress_delete = suppress_delete || run.softbounce;
+
/* maybe we delete this message now? */
if (retained)
{