X-Git-Url: http://git.megabrutal.com/?p=mgsmtp.git;a=blobdiff_plain;f=Relay.pas;fp=Relay.pas;h=cea792d52c5237a026db4f17fb390c413e16fd1f;hp=1e42979d761b9401daa8cbd342b45dc326330b76;hb=6f8e6026b5d35a3fa41a124032caed6621a9f86e;hpb=e975445862a1700cf05c574db979346d6ca4a4fd diff --git a/Relay.pas b/Relay.pas index 1e42979..cea792d 100644 --- a/Relay.pas +++ b/Relay.pas @@ -377,7 +377,14 @@ begin end; Result:= true; end - else AdministerMassFailure(Result); + else if (Response.GetNumericCode >= 500) and (Response.GetNumericCode <= 504) then begin + { It seems the remote site did not understand our EHLO, that is, + let's admit, quite odd in the 21st century... + Whatever, let's fall back to RFC 821 then. } + TCP.SendCommand(SMTP_C_HELO, MainServerConfig.Name); + TCP.ReadResponse(Response); + Result:= Response.GetNumericCode = SMTP_R_OK; + end; if Result then begin if FRoutingTarget.Auth then begin @@ -408,7 +415,8 @@ begin else Authenticated:= true; if not Authenticated then AdministerMassFailure(Result); - end; + end + else AdministerMassFailure(Result); end else AdministerMassFailure(Result);