From: Jeremy Harris Date: Thu, 7 May 2020 13:11:49 +0000 (+0100) Subject: I18N: change default on smtp transport, to downconvert-when-needed X-Git-Tag: exim-4.94-RC1~8 X-Git-Url: https://vcs.fsf.org/?p=exim.git;a=commitdiff_plain;h=b16c9f8bdcfd4cce490af9e493489e128f5c8f52 I18N: change default on smtp transport, to downconvert-when-needed --- diff --git a/doc/doc-docbook/spec.xfpt b/doc/doc-docbook/spec.xfpt index 4069c29db..af28f0cba 100644 --- a/doc/doc-docbook/spec.xfpt +++ b/doc/doc-docbook/spec.xfpt @@ -25672,7 +25672,7 @@ The &%tls_verify_certificates%& option must also be set. If both this option and &%tls_try_verify_hosts%& are unset operation is as if this option selected all hosts. -.option utf8_downconvert smtp integer&!! unset +.option utf8_downconvert smtp integer&!! -1 .cindex utf8 "address downconversion" .cindex i18n "utf8 address downconversion" If built with internationalization support, @@ -25680,7 +25680,8 @@ this option controls conversion of UTF-8 in message envelope addresses to a-label form. If, after expansion, the value is 1, 0, or -1 then this value overrides any value previously set for the message. Otherwise, any previously -set value is used. +set value is used. To permit use of a previous value, +set this option to an empty string. For details on the values see section &<>&. diff --git a/doc/doc-txt/ChangeLog b/doc/doc-txt/ChangeLog index 6109a14dd..3cd92b816 100644 --- a/doc/doc-txt/ChangeLog +++ b/doc/doc-txt/ChangeLog @@ -189,6 +189,16 @@ JH/41 Bug 2571: Fix SPA authenticator. Running as a server, an offset supplied being used. A malicious client could thus cause an out-of-bounds read and possibly gain authentication. Fix by adding the check. +JH/42 Internationalisation: change the default for downconversion in the smtp + transport to be "if needed". Previously it was "as previously set" for + the message, which usually meant "if needed" for message-submission but + "no" for everything else. However, MTAs have been seen using SMTPUTF8 + even when the envelope addresses did not need it, resulting in forwarding + failures to non-supporting MTAs. A downconvert in such cases will be + a no-op on the addresses, merely dropping the use of SMTPUTF8 by the + transport. The change does mean that addresses needing conversion will + be converted when previously a delivery failure would occur. + Exim version 4.93 ----------------- diff --git a/src/src/transports/smtp.c b/src/src/transports/smtp.c index 6795a0b2c..8492a7f25 100644 --- a/src/src/transports/smtp.c +++ b/src/src/transports/smtp.c @@ -241,7 +241,7 @@ smtp_transport_options_block smtp_transport_option_defaults = { .tls_verify_cert_hostnames = US"*", #endif #ifdef SUPPORT_I18N - .utf8_downconvert = NULL, + .utf8_downconvert = US"-1", #endif #ifndef DISABLE_DKIM .dkim = diff --git a/test/confs/4211 b/test/confs/4211 index d4aaa441b..044888314 100644 --- a/test/confs/4211 +++ b/test/confs/4211 @@ -114,9 +114,10 @@ local_delivery: return_path_add rmt_smtp: - driver = smtp + driver = smtp hosts_try_fastopen = : - hosts_require_tls = * + hosts_require_tls = * tls_try_verify_hosts = : + utf8_downconvert = 0 # End diff --git a/test/confs/4221 b/test/confs/4221 index d4aaa441b..61205cde3 100644 --- a/test/confs/4221 +++ b/test/confs/4221 @@ -114,9 +114,10 @@ local_delivery: return_path_add rmt_smtp: - driver = smtp + driver = smtp hosts_try_fastopen = : - hosts_require_tls = * + hosts_require_tls = * tls_try_verify_hosts = : + utf8_downconvert = 0 # End diff --git a/test/scripts/4200-International/4203 b/test/scripts/4200-International/4203 index 310cbd7ff..914ed917d 100644 --- a/test/scripts/4200-International/4203 +++ b/test/scripts/4200-International/4203 @@ -6,7 +6,7 @@ exim -DSERVER=server -DOPTION="" -bd -oX PORT_D **** # # forwarding fails when target does not support SMTPUTF8 -exim -bs -odi +exim -DSTRICT=0 -bs -odi EHLO client.ffail MAIL FROM: <यहलोगहिन्दीक्योंनहींबोलसकतेहैं@japanese.なぜみんな日本語を話してくれないのか.local> SMTPUTF8 RCPT TO: diff --git a/test/scripts/4200-International/4204 b/test/scripts/4200-International/4204 index 3063f5ac3..f8efcc33b 100644 --- a/test/scripts/4200-International/4204 +++ b/test/scripts/4200-International/4204 @@ -41,7 +41,7 @@ exim -DSERVER=server -DOPTION="" -bd -oX PORT_D **** # # Recipient verify callout, fail -exim -bs -odi -DCONTROL="verify=recipient/callout" +exim -bs -odi -DCONTROL="verify=recipient/callout" -DSTRICT=0 EHLO client.ffail MAIL FROM: SMTPUTF8 RCPT TO: @@ -49,7 +49,7 @@ QUIT **** # # Recipient+random verify callout, fail -exim -bs -odi -DCONTROL="verify=recipient/callout=random" +exim -bs -odi -DCONTROL="verify=recipient/callout=random" -DSTRICT=0 EHLO client.ffail MAIL FROM: SMTPUTF8 RCPT TO: diff --git a/test/scripts/4200-International/4206 b/test/scripts/4200-International/4206 index 4c558f405..658f2cb30 100644 --- a/test/scripts/4200-International/4206 +++ b/test/scripts/4200-International/4206 @@ -39,14 +39,14 @@ exim -DSERVER=server -DNOTDAEMON -qqff exim -DSERVER=server -DOPTION="" -bd -oX PORT_D **** # sender verify callout, fail -exim -bs -odi -DCONTROL="verify=sender/callout" +exim -bs -odi -DCONTROL="verify=sender/callout" -DSTRICT=0 EHLO client.sfail MAIL FROM: SMTPUTF8 RCPT TO: QUIT **** # sender+random verify callout, fail -exim -bs -odi -DCONTROL="verify=sender/callout=random" +exim -bs -odi -DCONTROL="verify=sender/callout=random" -DSTRICT=0 EHLO client.sfail MAIL FROM: SMTPUTF8 RCPT TO: