summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/doc-docbook/spec.xfpt5
-rw-r--r--doc/doc-txt/ChangeLog10
-rw-r--r--src/src/transports/smtp.c2
-rw-r--r--test/confs/42115
-rw-r--r--test/confs/42215
-rw-r--r--test/scripts/4200-International/42032
-rw-r--r--test/scripts/4200-International/42044
-rw-r--r--test/scripts/4200-International/42064
8 files changed, 25 insertions, 12 deletions
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 &<<SECTi18nMTA>>&.
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: <userz@test.ex>
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: <CALLER@spanish.PorquénopuedensimplementehablarenEspañol.local> SMTPUTF8
RCPT TO: <userS@test.ex>
@@ -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: <CALLER@vietnamese.TạisaohọkhôngthểchỉnóitiếngViệt.local> SMTPUTF8
RCPT TO: <userT@test.ex>
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: <userA@test.ex> SMTPUTF8
RCPT TO: <user.यष्टिमधु@test.ex>
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: <userB.જેઠીમધ@test.ex> SMTPUTF8
RCPT TO: <user.ქართული@test.ex>