Subject: smtpmail.el doesn't retry with authentication when greylisting is used

From: Rainer Orth <[email-masked]>
Date: Sun, 04 Feb 2018 15:01:30 +0100

I've long been dealing with the following problem: I'm using GNU Emacs
(current 26.0.91, but the problem has existed for a long time before
that) and Gnus to send mail.  The relaying MTA uses greylisting when
receiving mail for local accounts without authentication, but
smtpmail.el cannot deal with the resulting temporary SMTP codes.  I'd
expect that it would retry with authentication, but doesn't.

I've used the following snippet to fix this.  Perhaps this (or something
similar) can be used to fix this issue?

Thanks.
	Rainer

-- 
-----------------------------------------------------------------------------
Rainer Orth, Center for Biotechnology, Bielefeld University

--- -	2018-02-04 01:21:02.374212479 +0000
+++ /tmp/smtpmail.el	2018-02-04 01:20:44.340497887 +0000
@@ -838,8 +838,9 @@
 		 ((and auth-mechanisms
 		       (not ask-for-password)
 		       (integerp (car result))
-		       (>= (car result) 550)
-		       (<= (car result) 554))
+		       (or (and (>= (car result) 550)
+				(<= (car result) 554))
+			   (eq (car result) 450)))
 		  ;; We got a "550 relay not permitted" (or the like),
 		  ;; and the server accepts credentials, so we try
 		  ;; again, but ask for a password first.