EHLO (not HELO) must be given by client before AUTH.
That is, AUTH command could not be used unless advertised (through EHLO, according to auth_advertise, etc). This behavior was hardened in Exim 4.20 and is not an option.
First, check you confs once again for correct advertising.
Second, if an Exim installation serves many broken clients, the patch attached could help. Otherwise, one must patch every client.
Code:
=3Dcut
--- src/smtp_in.c.orig Mon May 12 17:39:22 2003
+++ src/smtp_in.c Fri Jun 20 14:54:05 2003
@@ -1776,12 +1776,6 @@
authentication_failed =3D TRUE;
cmd_list[CMD_LIST_AUTH].is_mail_cmd =3D FALSE;
=20
- if (!auth_advertised)
- {
- synprot_error(L_smtp_protocol_error, 503, NULL,
- US"AUTH command used when not advertised");
- break;
- }
if (sender_host_authenticated !=3D NULL)
{
synprot_error(L_smtp_protocol_error, 503, NULL,
@@ -1832,12 +1826,11 @@
}
=20
/* Search for an authentication mechanism which is configured for
use
- as a server and which has been advertised. */
+ as a server */
=20
for (au =3D auths; au !=3D NULL; au =3D au->next)
{
- if (strcmpic(s, au->public_name) =3D=3D 0 && au->server &&
- au->advertised) break;
+ if (strcmpic(s, au->public_name) =3D=3D 0 && au->server) break;
}
=20
if (au =3D=3D NULL)
=3Dcut
Bookmarks