Default accept_8bitmime to true.
authorPhil Pennock <pdp@exim.org>
Mon, 7 May 2012 11:03:37 +0000 (04:03 -0700)
committerPhil Pennock <pdp@exim.org>
Mon, 7 May 2012 11:03:37 +0000 (04:03 -0700)
Some discussion at http://bugs.exim.org/show_bug.cgi?id=817

Refer readers to Dan Bernstein's analysis of the issues.
Consensus seen from maintainers is that DJB is right on this point.

doc/doc-docbook/spec.xfpt
doc/doc-txt/ChangeLog
doc/doc-txt/NewStuff
doc/doc-txt/OptionLists.txt
src/README.UPDATING
src/src/configure.default
src/src/globals.c
test/confs/0001
test/confs/0390
test/stdout/0001
test/stdout/0390

index 0555672ddcd04ddb9874aa85c627d617b1c5faf1..2a01a1e5b1bf9574ab60d1819a209f0cf9774cdf 100644 (file)
@@ -12850,14 +12850,23 @@ See also the &'Policy controls'& section above.
 Those options that undergo string expansion before use are marked with
 &dagger;.
 
 Those options that undergo string expansion before use are marked with
 &dagger;.
 
-.option accept_8bitmime main boolean false
+.new
+.option accept_8bitmime main boolean true
 .cindex "8BITMIME"
 .cindex "8-bit characters"
 This option causes Exim to send 8BITMIME in its response to an SMTP
 EHLO command, and to accept the BODY= parameter on MAIL commands.
 However, though Exim is 8-bit clean, it is not a protocol converter, and it
 takes no steps to do anything special with messages received by this route.
 .cindex "8BITMIME"
 .cindex "8-bit characters"
 This option causes Exim to send 8BITMIME in its response to an SMTP
 EHLO command, and to accept the BODY= parameter on MAIL commands.
 However, though Exim is 8-bit clean, it is not a protocol converter, and it
 takes no steps to do anything special with messages received by this route.
-Consequently, this option is turned off by default.
+
+Historically Exim kept this option off by default, but the maintainers
+feel that in today's Internet, this causes more problems than it solves.
+It now defaults to true.
+A more detailed analysis of the issues is provided by Dan Bernstein:
+.display
+&url(http://cr.yp.to/smtp/8bitmime.html)
+.endd
+.wen
 
 .option acl_not_smtp main string&!! unset
 .cindex "&ACL;" "for non-SMTP messages"
 
 .option acl_not_smtp main string&!! unset
 .cindex "&ACL;" "for non-SMTP messages"
index e953f9b5336af987ef6ac84bc84128568e20e72f..d202cf16b37ad6166524f6c4f6601b528fae572e 100644 (file)
@@ -89,6 +89,8 @@ PP/19 DNS resolver init changes for NetBSD compatibility.  (Risk of breakage
 PP/20 Revert part of NM/04, it broke log_path containing %D expansions.
       Left warnings.  Added "eximon gdb" invocation mode.
 
 PP/20 Revert part of NM/04, it broke log_path containing %D expansions.
       Left warnings.  Added "eximon gdb" invocation mode.
 
+PP/21 Defaulting "accept_8bitmime" to true, not false.
+
 
 Exim version 4.77
 -----------------
 
 Exim version 4.77
 -----------------
index 2872d241f0f74857095d85ba1b521e3c4e44142e..1c8190597024a796fc0a0d23053a7b2bfe1bbbfb 100644 (file)
@@ -56,6 +56,12 @@ Version 4.78
 
     Currently OpenSSL only.
 
 
     Currently OpenSSL only.
 
+ 8. The existing "accept_8bitmime" option now defaults to true.  This means
+    that Exim is deliberately not strictly RFC compliant.  We're following
+    Dan Bernstein's advice in http://cr.yp.to/smtp/8bitmime.html by default.
+    Those who disagree, or know that they are talking to mail servers that,
+    even today, are not 8-bit clean, need to turn off this option.
+
 
 Version 4.77
 ------------
 
 Version 4.77
 ------------
index 52a24b1984584045bc5964ba0bf7cc88c1e55c4c..20aeff965819a3a1d85ebdd023265f38c2ba3c92 100644 (file)
@@ -48,7 +48,7 @@ release 4.00, and so no router options are shown as earlier than 4.00, though
 in fact some of them were inherited from earlier versions.
 
 -----------------------------------------------------------------------------------------
 in fact some of them were inherited from earlier versions.
 
 -----------------------------------------------------------------------------------------
-accept_8bitmime                      boolean         false         main              1.60
+accept_8bitmime                      boolean         true          main              1.60 changed to true in 4.78
 acl_not_smtp                         string*         unset         main              4.11
 acl_not_smtp_mime                    string*         unset         main              4.51 with content scan
 acl_smtp_auth                        string*         unset         main              4.00
 acl_not_smtp                         string*         unset         main              4.11
 acl_not_smtp_mime                    string*         unset         main              4.51 with content scan
 acl_smtp_auth                        string*         unset         main              4.00
index 5b6bea869ae5ab3a26b634ef742d6d2144873451..0d729a38482f2ab0af4ce04d32e63f187d658b30 100644 (file)
@@ -69,6 +69,14 @@ Exim version 4.78
    attribute as a comma-separated list.  Note the distinction from multiple
    attributes being returned, where each one is a name=value pair.
 
    attribute as a comma-separated list.  Note the distinction from multiple
    attributes being returned, where each one is a name=value pair.
 
+ * accept_8bitmime now defaults on, which is not RFC compliant but is better
+   suited to today's Internet.  See http://cr.yp.to/smtp/8bitmime.html for a
+   sane rationale.  Those who wish to be strictly RFC compliant, or know that
+   they need to talk to servers that are not 8-bit-clean, now need to take
+   explicit configuration action to default this option off.  This is not a
+   new option, you can safely force it off before upgrading, to decouple
+   configuration changes from the binary upgrade while remaining RFC compliant.
+
 
 Exim version 4.77
 -----------------
 
 Exim version 4.77
 -----------------
index a527b41a85fdf0304d92f00f196c395c9f94c2b5..963ec16966961c1f09091a2c116ed525721ff420 100644 (file)
@@ -304,6 +304,13 @@ timeout_frozen_after = 7d
 # because of some popular, yet buggy, mail composition software.
 
 
 # because of some popular, yet buggy, mail composition software.
 
 
+# If you wish to be strictly RFC compliant, or if you know you'll be
+# exchanging email with systems that are not 8-bit clean, then you may
+# wish to disable advertising 8BITMIME.  Uncomment this option to do so.
+
+# accept_8bitmime = false
+
+
 ######################################################################
 #                       ACL CONFIGURATION                            #
 #         Specifies access control lists for incoming SMTP mail      #
 ######################################################################
 #                       ACL CONFIGURATION                            #
 #         Specifies access control lists for incoming SMTP mail      #
index f11c7c2dbacfac87bd72041f8b813da306fd123c..af0c14b021687ba7ad0460759d5edcec186d1250 100644 (file)
@@ -247,7 +247,7 @@ uschar *acl_wherecodes[]       = { US"550",     /* RCPT */
 
 BOOL    active_local_from_check = FALSE;
 BOOL    active_local_sender_retain = FALSE;
 
 BOOL    active_local_from_check = FALSE;
 BOOL    active_local_sender_retain = FALSE;
-BOOL    accept_8bitmime        = FALSE;
+BOOL    accept_8bitmime        = TRUE; /* deliberately not RFC compliant */
 address_item  *addr_duplicate  = NULL;
 
 address_item address_defaults = {
 address_item  *addr_duplicate  = NULL;
 
 address_item address_defaults = {
index aa07ef0536ade52b35742f0e8b2fb8c3b4155228..14db5ae2696921340502c4a25eda4a991f655afc 100644 (file)
@@ -13,7 +13,7 @@ gecos_pattern = ""
 gecos_name = CALLER_NAME
 
 
 gecos_name = CALLER_NAME
 
 
-accept_8bitmime
+no_accept_8bitmime
 acl_not_smtp = check_local_message
 acl_smtp_auth = check_auth
 acl_smtp_connect = check_connect
 acl_not_smtp = check_local_message
 acl_smtp_auth = check_auth
 acl_smtp_connect = check_connect
index 6da8949d8c98d592641a634b3c17fad59dfa78ba..d6e5b9cd84f1e3ab0596991c42917ec31999fb2b 100644 (file)
@@ -12,7 +12,7 @@ gecos_name = CALLER_NAME
 # ----- Main settings -----
 
 .ifdef AA
 # ----- Main settings -----
 
 .ifdef AA
-accept_8bitmime
+no_accept_8bitmime
 .endif
 
 .ifndef AA
 .endif
 
 .ifndef AA
index 77d2022287af2ac4d7ee677bb9019d12f8129a27..d9ce2f07b182a8845b8d724e77b316526c133ada 100644 (file)
@@ -1,4 +1,4 @@
-accept_8bitmime
+no_accept_8bitmime
 bounce_message_file = 
 callout_domain_negative_expire = 1h
 daemon_smtp_ports = 
 bounce_message_file = 
 callout_domain_negative_expire = 1h
 daemon_smtp_ports = 
index f42f459d4c27ae821e97d49b7c3b0599f88d5191..d573699ef570b8ee398aeea4443d1ac30905fd1d 100644 (file)
@@ -1,4 +1,4 @@
-no_accept_8bitmime
+accept_8bitmime
 acl_not_smtp = xxx
 acl_smtp_auth = 
 acl_smtp_connect = 
 acl_not_smtp = xxx
 acl_smtp_auth = 
 acl_smtp_connect = 
@@ -8,7 +8,7 @@ acl_smtp_expn = zzz
 acl_smtp_mail = yyy
 acl_smtp_rcpt = 
 acl_smtp_vrfy = 
 acl_smtp_mail = yyy
 acl_smtp_rcpt = 
 acl_smtp_vrfy = 
-accept_8bitmime
+no_accept_8bitmime
 acl_not_smtp = 
 acl_smtp_auth = xxx
 acl_smtp_connect = xxx
 acl_not_smtp = 
 acl_smtp_auth = xxx
 acl_smtp_connect = xxx
@@ -18,7 +18,7 @@ acl_smtp_expn =
 acl_smtp_mail = xxx
 acl_smtp_rcpt = 
 acl_smtp_vrfy = 
 acl_smtp_mail = xxx
 acl_smtp_rcpt = 
 acl_smtp_vrfy = 
-no_accept_8bitmime
+accept_8bitmime
 acl_not_smtp = xxx
 acl_smtp_auth = xxx
 acl_smtp_connect = yyy
 acl_not_smtp = xxx
 acl_smtp_auth = xxx
 acl_smtp_connect = yyy
@@ -28,7 +28,7 @@ acl_smtp_expn = yyy
 acl_smtp_mail = yyy
 acl_smtp_rcpt = 
 acl_smtp_vrfy = 
 acl_smtp_mail = yyy
 acl_smtp_rcpt = 
 acl_smtp_vrfy = 
-accept_8bitmime
+no_accept_8bitmime
 acl_not_smtp = 
 acl_smtp_auth = xxx
 acl_smtp_connect = xxx
 acl_not_smtp = 
 acl_smtp_auth = xxx
 acl_smtp_connect = xxx