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,
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>>&.
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
-----------------
.tls_verify_cert_hostnames = US"*",
#endif
#ifdef SUPPORT_I18N
- .utf8_downconvert = NULL,
+ .utf8_downconvert = US"-1",
#endif
#ifndef DISABLE_DKIM
.dkim =
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
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
****
#
# 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>
****
#
# 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>
****
#
# 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>
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>