diff -U4 -r exim-4.69/src/smtp_in.c exim-4.69+always-require-helo-cmd/src/smtp_in.c --- exim-4.69/src/smtp_in.c 2007-09-28 13:21:57.000000000 +0100 +++ exim-4.69+always-require-helo-cmd/src/smtp_in.c 2008-01-26 10:07:13.000000000 +0000 @@ -3172,13 +3172,14 @@ HAD(SCH_MAIL); smtp_mailcmd_count++; /* Count for limit and ratelimit */ was_rej_mail = TRUE; /* Reset if accepted */ - if (helo_required && !helo_seen) + /* RFC 2821 4.1.1.1: + "In any event, a client MUST issue HELO or EHLO before starting a mail transaction" */ + if (/*helo_required &&*/ !helo_seen) { - smtp_printf("503 HELO or EHLO required\r\n"); - log_write(0, LOG_MAIN|LOG_REJECT, "rejected MAIL from %s: no " - "HELO/EHLO given", host_and_ident(FALSE)); + done = synprot_error(L_smtp_protocol_error, 503, NULL, + US"HELO/EHLO required"); break; } if (sender_address != NULL)