[exim] 4.87 and acl_check_data

Top Page
Delete this message
Reply to this message
Author: Evgeniy Berdnikov
Date:  
To: exim-users
Subject: [exim] 4.87 and acl_check_data
Good day.

Exim 4.87 is shipped with a body line length check condition:

acl_check_data:

  # Deny if the message contains an overlong line.  Per the standards
  # we should never receive one such via SMTP.
  #
  deny    condition  = ${if > {$max_received_linelength}{998}}


After upgrade I found two issues: 1. mails, composed by MS Outlook 14,
are sometimes rejected due to oversized of even malformed header
"References:", 2. in my configuration bounces are sent through the same
mail relay and are blocked by this rule, because they include headers
of the original mail with oversized lines. So bounces are lost and
my users have no hints that their mails were dropped.

Certainly, Outlook is buggy. But the absence bounce is much worse,
regardless of its compliance to RFC. Moreover, there were no adequate
diagnostic message in logs. I think messages from <> should not be
checked for body line length, and propose this patch against 4.87:

------------------------------------------------------------------------

--- ./src/configure.default.orig    2016-04-02 22:24:15.000000000 +0300
+++ ./src/configure.default    2016-04-12 14:09:40.617384333 +0300
@@ -513,7 +513,11 @@
   # Deny if the message contains an overlong line.  Per the standards
   # we should never receive one such via SMTP.
   #
-  deny    condition  = ${if > {$max_received_linelength}{998}}
+  deny
+    !senders   = :
+    message    = Maximum body line length is $max_received_linelength \
+            (over 998 chars limit), message rejected.
+    condition  = ${if > {$max_received_linelength}{998}}


# Deny if the message contains a virus. Before enabling this check, you
# must install a virus scanner and set the av_scanner option above.

------------------------------------------------------------------------

Thanks.
--
Eugene Berdnikov