diff options
-rw-r--r-- | doc/doc-txt/ChangeLog | 3 | ||||
-rw-r--r-- | src/src/routers/redirect.c | 11 | ||||
-rw-r--r-- | test/confs/4201 | 5 | ||||
-rw-r--r-- | test/log/4207 | 6 | ||||
-rw-r--r-- | test/scripts/4200-International/4207 | 15 | ||||
-rw-r--r-- | test/stdout/4207 | 12 |
6 files changed, 46 insertions, 6 deletions
diff --git a/doc/doc-txt/ChangeLog b/doc/doc-txt/ChangeLog index d672ee720..0b8e51658 100644 --- a/doc/doc-txt/ChangeLog +++ b/doc/doc-txt/ChangeLog @@ -120,6 +120,9 @@ JH/23 Fix memory leak during multi-message connections using STARTTLS under JH/24 Bug 2242: Fix exim_dbmbuild to permit directoryless filenames. +JH/25 Fix utf8_downconvert propagation through a redirect router. Previously it + was not propagated. + Exim version 4.90 ----------------- diff --git a/src/src/routers/redirect.c b/src/src/routers/redirect.c index b69ba535f..944fb6743 100644 --- a/src/src/routers/redirect.c +++ b/src/src/routers/redirect.c @@ -465,8 +465,9 @@ while (generated) } #ifdef SUPPORT_I18N - next->prop.utf8_msg = string_is_utf8(next->address) - || (sender_address && string_is_utf8(sender_address)); + if (!next->prop.utf8_msg) + next->prop.utf8_msg = string_is_utf8(next->address) + || (sender_address && string_is_utf8(sender_address)); #endif DEBUG(D_route) @@ -567,9 +568,9 @@ addr_prop.remove_headers = NULL; addr_prop.srs_sender = NULL; #endif #ifdef SUPPORT_I18N -addr_prop.utf8_msg = FALSE; /*XXX should we not copy this from the parent? */ -addr_prop.utf8_downcvt = FALSE; -addr_prop.utf8_downcvt_maybe = FALSE; +addr_prop.utf8_msg = addr->prop.utf8_msg; +addr_prop.utf8_downcvt = addr->prop.utf8_downcvt; +addr_prop.utf8_downcvt_maybe = addr->prop.utf8_downcvt_maybe; #endif diff --git a/test/confs/4201 b/test/confs/4201 index e12e13828..9242eb063 100644 --- a/test/confs/4201 +++ b/test/confs/4201 @@ -93,6 +93,11 @@ bounces: data = DIR/test-mail/$local_part file_transport = local_delivery +redir: + driver = redirect + local_parts = ^z + data = ${substr_1:$local_part}@$domain + rmt: driver = manualroute domains = +local_domains diff --git a/test/log/4207 b/test/log/4207 index 797a2b909..e39c0f5fb 100644 --- a/test/log/4207 +++ b/test/log/4207 @@ -1,11 +1,17 @@ 1999-03-02 09:44:33 10HmaX-0005vi-00 <= 他们为什么不说中文@hebrew.למההםפשוטלאמדבריםעברית.com U=CALLER P=utf8local-esmtp S=sss for user.세계의모든사람들이한국어를이해한다면얼마나좋을까@test.ex 1999-03-02 09:44:33 10HmaX-0005vi-00 => xn--user.-f99s29a80cg5i8xgv8fnb734dq4gv6av8eczab60f5jch09a5ea085a0marwd373e180hea90e@test.ex <user.세계의모든사람들이한국어를이해한다면얼마나좋을까@test.ex> F=<xn--ihqwcrb4cv8a8dqg056pqjye@hebrew.xn--4dbcagdahymbxekheh6e0a7fei0b.com> R=rmt T=rmt_smtp H=127.0.0.1 [127.0.0.1] C="250 OK id=10HmaY-0005vi-00" 1999-03-02 09:44:33 10HmaX-0005vi-00 Completed +1999-03-02 09:44:33 10HmaZ-0005vi-00 <= 他们为什么不说中文@hebrew.למההםפשוטלאמדבריםעברית.com U=CALLER P=utf8local-esmtp S=sss for zuser.세계의모든사람들이한국어를이해한다면얼마나좋을까@test.ex +1999-03-02 09:44:33 10HmaZ-0005vi-00 => xn--user.-f99s29a80cg5i8xgv8fnb734dq4gv6av8eczab60f5jch09a5ea085a0marwd373e180hea90e@test.ex <zuser.세계의모든사람들이한국어를이해한다면얼마나좋을까@test.ex> F=<xn--ihqwcrb4cv8a8dqg056pqjye@hebrew.xn--4dbcagdahymbxekheh6e0a7fei0b.com> R=rmt T=rmt_smtp H=127.0.0.1 [127.0.0.1] C="250 OK id=10HmbA-0005vi-00" +1999-03-02 09:44:33 10HmaZ-0005vi-00 Completed ******** SERVER ******** 1999-03-02 09:44:33 exim x.yz daemon started: pid=pppp, no queue runs, listening for SMTP on port 1225 1999-03-02 09:44:33 10HmaY-0005vi-00 <= xn--ihqwcrb4cv8a8dqg056pqjye@hebrew.xn--4dbcagdahymbxekheh6e0a7fei0b.com H=localhost (the.local.host.name) [127.0.0.1] P=esmtp S=sss id=E10HmaX-0005vi-00@the.local.host.name for xn--user.-f99s29a80cg5i8xgv8fnb734dq4gv6av8eczab60f5jch09a5ea085a0marwd373e180hea90e@test.ex +1999-03-02 09:44:33 10HmbA-0005vi-00 <= xn--ihqwcrb4cv8a8dqg056pqjye@hebrew.xn--4dbcagdahymbxekheh6e0a7fei0b.com H=localhost (the.local.host.name) [127.0.0.1] P=esmtp S=sss id=E10HmaZ-0005vi-00@the.local.host.name for xn--user.-f99s29a80cg5i8xgv8fnb734dq4gv6av8eczab60f5jch09a5ea085a0marwd373e180hea90e@test.ex 1999-03-02 09:44:33 Start queue run: pid=pppp -qqff 1999-03-02 09:44:33 10HmaY-0005vi-00 => :blackhole: <xn--user.-f99s29a80cg5i8xgv8fnb734dq4gv6av8eczab60f5jch09a5ea085a0marwd373e180hea90e@test.ex> R=localuser 1999-03-02 09:44:33 10HmaY-0005vi-00 Completed +1999-03-02 09:44:33 10HmbA-0005vi-00 => :blackhole: <xn--user.-f99s29a80cg5i8xgv8fnb734dq4gv6av8eczab60f5jch09a5ea085a0marwd373e180hea90e@test.ex> R=localuser +1999-03-02 09:44:33 10HmbA-0005vi-00 Completed 1999-03-02 09:44:33 End queue run: pid=pppp -qqff diff --git a/test/scripts/4200-International/4207 b/test/scripts/4200-International/4207 index cbfa5cca3..061a2c6b3 100644 --- a/test/scripts/4200-International/4207 +++ b/test/scripts/4200-International/4207 @@ -1,7 +1,7 @@ # Internationalised mail: control = utf8_downconvert # Exim test configuration 4207 # -exim -DSERVER=server -bd -oX PORT_D +exim -DSERVER=server -DOPTION="" -bd -oX PORT_D **** # # @@ -18,6 +18,19 @@ body QUIT **** # +# utf-8 from, optional downconvert, delivery redirected +exim -bs -odi -DCONTROL="control=utf8_downconvert/-1" +EHLO client.bh +MAIL FROM: <他们为什么不说中文@hebrew.למההםפשוטלאמדבריםעברית.com> SMTPUTF8 +RCPT TO: <zuser.세계의모든사람들이한국어를이해한다면얼마나좋을까@test.ex> +DATA +Subject: test + +body +. +QUIT +**** +# killdaemon exim -DSERVER=server -DNOTDAEMON -qqff **** diff --git a/test/stdout/4207 b/test/stdout/4207 index 94a4e18d7..948434ff3 100644 --- a/test/stdout/4207 +++ b/test/stdout/4207 @@ -10,3 +10,15 @@ 354 Enter message, ending with "." on a line by itself
250 OK id=10HmaX-0005vi-00
221 the.local.host.name closing connection
+220 the.local.host.name ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000
+250-the.local.host.name Hello CALLER at client.bh
+250-SIZE 52428800
+250-8BITMIME
+250-PIPELINING
+250-SMTPUTF8
+250 HELP
+250 OK
+250 Accepted
+354 Enter message, ending with "." on a line by itself
+250 OK id=10HmaZ-0005vi-00
+221 the.local.host.name closing connection
|