From 425d3db4e3ad58b7ea5d185accfd16e8079613f1 Mon Sep 17 00:00:00 2001 From: John Denker Date: Sun, 3 Jun 2012 22:27:58 -0700 Subject: Increase qmail-remote's compliance with RFC2821. Some smtp servers are now emitting 5xx responses from the get-go, and mere RFC821 behavior doesn't deal well with them. Credit: Adrian Ho. --- qmail-remote.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'qmail-remote.c') diff --git a/qmail-remote.c b/qmail-remote.c index 7d65473..6941ba4 100644 --- a/qmail-remote.c +++ b/qmail-remote.c @@ -222,13 +222,17 @@ void smtp() int flagbother; int i; - if (smtpcode() != 220) quit("ZConnected to "," but greeting failed"); + code = smtpcode(); + if (code >= 500) quit("DConnected to "," but greeting failed"); + if (code != 220) quit("ZConnected to "," but greeting failed"); substdio_puts(&smtpto,"HELO "); substdio_put(&smtpto,helohost.s,helohost.len); substdio_puts(&smtpto,"\r\n"); substdio_flush(&smtpto); - if (smtpcode() != 250) quit("ZConnected to "," but my name was rejected"); + code = smtpcode(); + if (code >= 500) quit("DConnected to "," but my name was rejected"); + if (code != 250) quit("ZConnected to "," but my name was rejected"); substdio_puts(&smtpto,"MAIL FROM:<"); substdio_put(&smtpto,sender.s,sender.len); -- cgit v1.2.3