ph10 2004/11/18 10:35:19 GMT
Modified files:
exim-doc/doc-txt ChangeLog
exim-src/src deliver.c
Added files:
exim-test-orig/AutoTest/confs 594
exim-test-orig/AutoTest/log 594
exim-test-orig/AutoTest/mail 594.postmaster
exim-test-orig/AutoTest/scripts 594
Log:
errors_to on a router was being ignored for bounce messages.
Revision Changes Path
1.32 +4 -0 exim/exim-doc/doc-txt/ChangeLog
1.2 +7 -4 exim/exim-src/src/deliver.c
1.1 +49 -0 exim/exim-test-orig/AutoTest/confs/594 (new)
1.1 +6 -0 exim/exim-test-orig/AutoTest/log/594 (new)
1.1 +42 -0 exim/exim-test-orig/AutoTest/mail/594.postmaster (new)
1.1 +4 -0 exim/exim-test-orig/AutoTest/scripts/594 (new)
Index: ChangeLog
===================================================================
RCS file: /home/cvs/exim/exim-doc/doc-txt/ChangeLog,v
retrieving revision 1.31
retrieving revision 1.32
diff -u -r1.31 -r1.32
--- ChangeLog 17 Nov 2004 16:12:26 -0000 1.31
+++ ChangeLog 18 Nov 2004 10:35:18 -0000 1.32
@@ -1,4 +1,4 @@
-$Cambridge: exim/exim-doc/doc-txt/ChangeLog,v 1.31 2004/11/17 16:12:26 ph10 Exp $
+$Cambridge: exim/exim-doc/doc-txt/ChangeLog,v 1.32 2004/11/18 10:35:18 ph10 Exp $
Change log file for Exim from version 4.21
-------------------------------------------
@@ -133,6 +133,10 @@
condition is true, the result is "true". As before, when the second string
is omitted, a false condition yields an empty string. This makes it less
cumbersome to write custom ACL and router conditions.
+
+34. Failure to deliver a bounce message always caused it to be frozen, even if
+ there was an errors_to setting on the router. The errors_to setting is now
+ respected.
Exim version 4.43
Index: deliver.c
===================================================================
RCS file: /home/cvs/exim/exim-src/src/deliver.c,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- deliver.c 7 Oct 2004 10:39:01 -0000 1.1
+++ deliver.c 18 Nov 2004 10:35:19 -0000 1.2
@@ -1,4 +1,4 @@
-/* $Cambridge: exim/exim-src/src/deliver.c,v 1.1 2004/10/07 10:39:01 ph10 Exp $ */
+/* $Cambridge: exim/exim-src/src/deliver.c,v 1.2 2004/11/18 10:35:19 ph10 Exp $ */
/*************************************************
* Exim - an Internet mail transport agent *
@@ -1046,12 +1046,15 @@
setflag(addr, af_ignore_error);
/* Freeze the message if requested, or if this is a bounce message (or other
- message with null sender). However, don't freeze if errors are being ignored.
- The actual code to ignore occurs later, instead of sending a message. Logging
- of freezing occurs later, just before writing the -H file. */
+ message with null sender) and this address does not have its own errors
+ address. However, don't freeze if errors are being ignored. The actual code
+ to ignore occurs later, instead of sending a message. Logging of freezing
+ occurs later, just before writing the -H file. */
if (!testflag(addr, af_ignore_error) &&
- (addr->special_action == SPECIAL_FREEZE || sender_address[0] == 0))
+ (addr->special_action == SPECIAL_FREEZE ||
+ (sender_address[0] == 0 && addr->p.errors_address == NULL)
+ ))
{
frozen_info = (addr->special_action == SPECIAL_FREEZE)? US"" :
(sender_local && !local_error_message)?
Index: 594
====================================================================
# Exim test configuration 594
# Macros are set externally in order to get the path
# of the Exim that is being tested, and the directory
# in which the test data lives.
exim_path = EXIM_PATH
primary_hostname = myhost.test.ex
spool_directory = DIR/spool
# ----- Main settings -----
trusted_users = CALLER
# ----- Routers -----
begin routers
r0:
driver = accept
senders = :
local_parts = postmaster
transport = t1
r1:
driver = redirect
pipe_transport = t2
data = |/bin/echo "Some pipe output"
errors_to = postmaster@???
# ----- Transports -----
begin transports
t1:
driver = appendfile
file = DIR/test-mail/$local_part
user = CALLER
t2:
driver = pipe
return_output
user = CALLER
# End
Index: 594
====================================================================
1999-03-02 09:44:33 10HmaX-0005vi-00 <= <> U=ph10 P=local S=249
1999-03-02 09:44:33 10HmaX-0005vi-00 ** |/bin/echo "Some pipe output" <ph10@???> R=r1 T=t2: return message generated
1999-03-02 09:44:33 10HmaY-0005vi-00 <= <> R=10HmaX-0005vi-00 U=exim P=local S=1182
1999-03-02 09:44:33 10HmaY-0005vi-00 => postmaster <postmaster@???> R=r0 T=t1
1999-03-02 09:44:33 10HmaY-0005vi-00 Completed
1999-03-02 09:44:33 10HmaX-0005vi-00 Completed
Index: 594.postmaster
====================================================================
From MAILER-DAEMON Tue Mar 02 09:44:33 1999
Received: from exim by myhost.test.ex with local (Exim x.yz)
id 10HmaY-0005vi-00
for postmaster@???; Tue, 2 Mar 1999 09:44:33 +0000
X-Failed-Recipients: ph10@???
Auto-Submitted: auto-generated
From: Mail Delivery System <Mailer-Daemon@???>
To: postmaster@???
Subject: Mail delivery failed
Message-Id: <E10HmaY-0005vi-00@???>
Date: Tue, 2 Mar 1999 09:44:33 +0000
This message was created automatically by mail delivery software.
A message sent by
<>
could not be delivered to one or more of its recipients. The following
address(es) failed:
pipe to |/bin/echo "Some pipe output"
generated by ph10@???
The following text was generated during the delivery attempt:
------ pipe to |/bin/echo "Some pipe output"
generated by ph10@??? ------
Some pipe output
------ This is a copy of the message, including all the headers. ------
Return-path: <>
Received: from ph10 by myhost.test.ex with local (Exim x.yz)
id 10HmaX-0005vi-00
for ph10@???; Tue, 2 Mar 1999 09:44:33 +0000
Message-Id: <E10HmaX-0005vi-00@???>
Date: Tue, 2 Mar 1999 09:44:33 +0000
This is a test message
Index: 594
====================================================================
0 errors_to and failing pipe
exim -odi -f '<>' ph10
This is a test message
****