aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEric S. Raymond <esr@thyrsus.com>1999-01-31 00:34:42 +0000
committerEric S. Raymond <esr@thyrsus.com>1999-01-31 00:34:42 +0000
commit48bb3f9df2dcd7f9be973b66219d56ab6fe762f5 (patch)
treeb44c0b27342094793dcff04826fc8382490a58a2
parent2536f3bbf0c7d5fc3ef14a21c11e07efea6cf294 (diff)
downloadfetchmail-48bb3f9df2dcd7f9be973b66219d56ab6fe762f5.tar.gz
fetchmail-48bb3f9df2dcd7f9be973b66219d56ab6fe762f5.tar.bz2
fetchmail-48bb3f9df2dcd7f9be973b66219d56ab6fe762f5.zip
Better bounce behavior.
svn path=/trunk/; revision=2359
-rw-r--r--NEWS2
-rw-r--r--fetchmail.man5
-rw-r--r--sink.c8
3 files changed, 10 insertions, 5 deletions
diff --git a/NEWS b/NEWS
index f0160842..fbdb18c4 100644
--- a/NEWS
+++ b/NEWS
@@ -12,6 +12,8 @@ fetchmail-4.7.6 ():
* All bounce messages now use FQDN return paths.
* Check for background nmode before generating oversized-message mail. Duh!
* Paul Murphy's improvements for SDPS.
+* Message deletion on miscellaneous 5xx SMTP errors is suppressed unless a
+ bounce can be sent.
There are 263 people on fetchmail-friends and 343 on fetchmail-announce.
diff --git a/fetchmail.man b/fetchmail.man
index 76b5c6d5..7e100034 100644
--- a/fetchmail.man
+++ b/fetchmail.man
@@ -843,9 +843,10 @@ The
.I fetchmail
code recognizes and discards the message on any of a list of responses
that defaults to [571, 550, 501] but can be set with the `antispam'
-option. This is the
+option. This is one of the
.I only
-circumstance under which fetchmail ever discards mail.
+two circumstance under which fetchmail ever discards mail (the others
+are the 552 and 553 errors described below).
.PP
If
.I fetchmail
diff --git a/sink.c b/sink.c
index 15531224..94e1a3ae 100644
--- a/sink.c
+++ b/sink.c
@@ -455,10 +455,12 @@ static int handle_smtp_report(struct query *ctl, struct msgblk *msg)
return(PS_REFUSED);
default: /* bounce the error back to the sender */
- send_bouncemail(msg, XMIT_ACCEPT,
+ if (send_bouncemail(msg, XMIT_ACCEPT,
"General SMTP/ESMTP error.\r\n",
- 1, responses);
- return(PS_REFUSED);
+ 1, responses))
+ return(PS_REFUSED);
+ else
+ return(PS_TRANSIENT);
}
}