[exim-cvs] Default accept_8bitmime to true.

Top Page

Reply to this message
Author: Exim Git Commits Mailing List
Date:  
To: exim-cvs
Subject: [exim-cvs] Default accept_8bitmime to true.
Gitweb: http://git.exim.org/exim.git/commitdiff/9cbad13b652da19396511434b18e88533c8f9901
Commit:     9cbad13b652da19396511434b18e88533c8f9901
Parent:     c6e95d22d77f480804ddb5c505891206b427dfb1
Author:     Phil Pennock <pdp@???>
AuthorDate: Mon May 7 04:03:37 2012 -0700
Committer:  Phil Pennock <pdp@???>
CommitDate: Mon May 7 04:03:37 2012 -0700


    Default accept_8bitmime to true.


    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   |   13 +++++++++++--
 doc/doc-txt/ChangeLog       |    2 ++
 doc/doc-txt/NewStuff        |    6 ++++++
 doc/doc-txt/OptionLists.txt |    2 +-
 src/README.UPDATING         |    8 ++++++++
 src/src/configure.default   |    7 +++++++
 src/src/globals.c           |    2 +-
 test/confs/0001             |    2 +-
 test/confs/0390             |    2 +-
 test/stdout/0001            |    2 +-
 test/stdout/0390            |    8 ++++----
 11 files changed, 43 insertions(+), 11 deletions(-)


diff --git a/doc/doc-docbook/spec.xfpt b/doc/doc-docbook/spec.xfpt
index 0555672..2a01a1e 100644
--- a/doc/doc-docbook/spec.xfpt
+++ b/doc/doc-docbook/spec.xfpt
@@ -12850,14 +12850,23 @@ See also the &'Policy controls'& section above.
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.
-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"
diff --git a/doc/doc-txt/ChangeLog b/doc/doc-txt/ChangeLog
index e953f9b..d202cf1 100644
--- a/doc/doc-txt/ChangeLog
+++ b/doc/doc-txt/ChangeLog
@@ -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/21 Defaulting "accept_8bitmime" to true, not false.
+

Exim version 4.77
-----------------
diff --git a/doc/doc-txt/NewStuff b/doc/doc-txt/NewStuff
index 2872d24..1c81905 100644
--- a/doc/doc-txt/NewStuff
+++ b/doc/doc-txt/NewStuff
@@ -56,6 +56,12 @@ Version 4.78

     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
------------
diff --git a/doc/doc-txt/OptionLists.txt b/doc/doc-txt/OptionLists.txt
index 52a24b1..20aeff9 100644
--- a/doc/doc-txt/OptionLists.txt
+++ b/doc/doc-txt/OptionLists.txt
@@ -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.

 -----------------------------------------------------------------------------------------
-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
diff --git a/src/README.UPDATING b/src/README.UPDATING
index 5b6bea8..0d729a3 100644
--- a/src/README.UPDATING
+++ b/src/README.UPDATING
@@ -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.


+ * 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
-----------------
diff --git a/src/src/configure.default b/src/src/configure.default
index a527b41..963ec16 100644
--- a/src/src/configure.default
+++ b/src/src/configure.default
@@ -304,6 +304,13 @@ timeout_frozen_after = 7d
# 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      #
diff --git a/src/src/globals.c b/src/src/globals.c
index f11c7c2..af0c14b 100644
--- a/src/src/globals.c
+++ b/src/src/globals.c
@@ -247,7 +247,7 @@ uschar *acl_wherecodes[]       = { US"550",     /* RCPT */


 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 = {
diff --git a/test/confs/0001 b/test/confs/0001
index aa07ef0..14db5ae 100644
--- a/test/confs/0001
+++ b/test/confs/0001
@@ -13,7 +13,7 @@ gecos_pattern = ""
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
diff --git a/test/confs/0390 b/test/confs/0390
index 6da8949..d6e5b9c 100644
--- a/test/confs/0390
+++ b/test/confs/0390
@@ -12,7 +12,7 @@ gecos_name = CALLER_NAME
# ----- Main settings -----

.ifdef AA
-accept_8bitmime
+no_accept_8bitmime
.endif

.ifndef AA
diff --git a/test/stdout/0001 b/test/stdout/0001
index 77d2022..d9ce2f0 100644
--- a/test/stdout/0001
+++ b/test/stdout/0001
@@ -1,4 +1,4 @@
-accept_8bitmime
+no_accept_8bitmime
bounce_message_file =
callout_domain_negative_expire = 1h
daemon_smtp_ports =
diff --git a/test/stdout/0390 b/test/stdout/0390
index f42f459..d573699 100644
--- a/test/stdout/0390
+++ b/test/stdout/0390
@@ -1,4 +1,4 @@
-no_accept_8bitmime
+accept_8bitmime
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 =
-accept_8bitmime
+no_accept_8bitmime
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 =
-no_accept_8bitmime
+accept_8bitmime
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 =
-accept_8bitmime
+no_accept_8bitmime
acl_not_smtp =
acl_smtp_auth = xxx
acl_smtp_connect = xxx