aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--NEWS4
-rw-r--r--TODO.txt2
-rw-r--r--sink.c12
3 files changed, 16 insertions, 2 deletions
diff --git a/NEWS b/NEWS
index e7c007a4..0da6eb25 100644
--- a/NEWS
+++ b/NEWS
@@ -93,6 +93,10 @@ fetchmail 6.3.10 (not yet released):
* The ESMTP/LMTP client will now apply an application-specific timeout while
waiting for the EHLO/LHLO response, rather than wait for the server or TCP
connection timeout.
+* Treat 530 errors as temporary, so as not to delete messages on configuration
+ errors. Partially taken from Petr Cerny's patch in Novell Bugzilla #246829.
+ The 501 part of said patch was not added, as the maintainer is not convinced
+ 501 is a temporary condition, and softbounce takes care of this anyways.
# CHANGES
* Make the comparison of the SSL fingerprints case insensitive, to
diff --git a/TODO.txt b/TODO.txt
index d54798c8..5c35bfec 100644
--- a/TODO.txt
+++ b/TODO.txt
@@ -6,8 +6,6 @@ soon - MUST:
See http://sourceware.org/bugzilla/show_bug.cgi?id=6453
soon - SHOULD:
-- https://bugzilla.novell.com/show_bug.cgi?id=246829 - recycle part of
- patch (STARTTLS required; 5XX error code in contradiction with manual?)
- allow \Deleted without \Seen, rf.
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=466299
- document IMAP4 ACL requirements
diff --git a/sink.c b/sink.c
index 78630a02..3db9def4 100644
--- a/sink.c
+++ b/sink.c
@@ -539,6 +539,18 @@ static int handle_smtp_report(struct query *ctl, struct msgblk *msg)
free(responses[0]);
return(PS_REFUSED);
+ case 530: /* must issue STARTTLS error */
+ /*
+ * Some SMTP servers insist on encrypted communication
+ * Let's set PS_TRANSIENT, otherwise all messages to be sent
+ * over such server would be blackholed - see RFC 3207.
+ */
+ if (outlevel > O_SILENT)
+ report_complete(stdout,
+ GT_("SMTP server requires STARTTLS, keeping message.\n"));
+ free(responses[0]);
+ return(PS_TRANSIENT);
+
default:
/* bounce non-transient errors back to the sender */
if (smtperr >= 500 && smtperr <= 599)