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.
Those options that undergo string expansion before use are marked with
†.
Those options that undergo string expansion before use are marked with
†.
-.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"
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
-----------------
+ 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
------------
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
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
-----------------
# 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 #
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 = {
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
# ----- Main settings -----
.ifdef AA
# ----- Main settings -----
.ifdef AA
bounce_message_file =
callout_domain_negative_expire = 1h
daemon_smtp_ports =
bounce_message_file =
callout_domain_negative_expire = 1h
daemon_smtp_ports =
acl_not_smtp = xxx
acl_smtp_auth =
acl_smtp_connect =
acl_not_smtp = xxx
acl_smtp_auth =
acl_smtp_connect =
acl_smtp_mail = yyy
acl_smtp_rcpt =
acl_smtp_vrfy =
acl_smtp_mail = yyy
acl_smtp_rcpt =
acl_smtp_vrfy =
acl_not_smtp =
acl_smtp_auth = xxx
acl_smtp_connect = xxx
acl_not_smtp =
acl_smtp_auth = xxx
acl_smtp_connect = xxx
acl_smtp_mail = xxx
acl_smtp_rcpt =
acl_smtp_vrfy =
acl_smtp_mail = xxx
acl_smtp_rcpt =
acl_smtp_vrfy =
acl_not_smtp = xxx
acl_smtp_auth = xxx
acl_smtp_connect = yyy
acl_not_smtp = xxx
acl_smtp_auth = xxx
acl_smtp_connect = yyy
acl_smtp_mail = yyy
acl_smtp_rcpt =
acl_smtp_vrfy =
acl_smtp_mail = yyy
acl_smtp_rcpt =
acl_smtp_vrfy =
acl_not_smtp =
acl_smtp_auth = xxx
acl_smtp_connect = xxx
acl_not_smtp =
acl_smtp_auth = xxx
acl_smtp_connect = xxx