summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorJeremy Harris <jgh146exb@wizmail.org>2018-09-23 12:07:26 +0100
committerJeremy Harris <jgh146exb@wizmail.org>2018-09-23 16:01:30 +0100
commitea97267cea0f7e6054806504b3616f2bf9723bce (patch)
tree1680964272769e495dc83cfbf2cde84b75043996 /test
parent70e384dde1f5b1290b807bc69c73887a7cbbe773 (diff)
DSN: tescase for ESMTP DSN extension, RCPT options
Diffstat (limited to 'test')
-rw-r--r--test/confs/061888
-rw-r--r--test/log/061863
-rw-r--r--test/mail/0618.rmt_accept14
-rw-r--r--test/rejectlog/06187
-rw-r--r--test/scripts/0000-Basic/0618112
-rw-r--r--test/stdout/0618130
6 files changed, 414 insertions, 0 deletions
diff --git a/test/confs/0618 b/test/confs/0618
new file mode 100644
index 000000000..2a2d8a97d
--- /dev/null
+++ b/test/confs/0618
@@ -0,0 +1,88 @@
+# Exim test configuration 0618
+
+SERVER =
+
+.include DIR/aux-var/std_conf_prefix
+
+primary_hostname = myhost.test.ex
+
+# ----- Main settings -----
+
+.ifdef OPT
+dsn_advertise_hosts = *
+.endif
+delay_warning = 3s : 24h
+
+accept_8bitmime = false
+pipelining_advertise_hosts = :
+
+trusted_users = CALLER
+acl_smtp_rcpt = rcpt
+
+log_selector = +received_recipients
+queue_only
+queue_run_in_order
+
+
+event_action = ${acl {ev_log}}
+
+#
+
+begin acl
+
+ev_log:
+ accept logwrite = event $event_name
+
+rcpt:
+ accept hosts = HOSTIPV4
+
+ deny local_parts = rmt_reject
+ defer local_parts = rmt_defer
+ accept
+
+# ----- Routers -----
+
+begin routers
+
+r1:
+ driver = accept
+ condition = ${if eq {127.0.0.1}{$sender_host_address}}
+ transport = tofile
+
+r2:
+ driver = manualroute
+ local_parts = ^rmt_.*
+ route_list = * 127.0.0.1::PORT_D
+ self = send
+ transport = smtp
+
+r3:
+ driver = manualroute
+ local_parts = deferred
+ route_list = * 127.0.0.1::PORT_S
+ self = send
+ transport = bad_tpt
+
+# ----- Transports -----
+
+begin transports
+
+smtp:
+ driver = smtp
+ event_action = ${acl {ev_log}}
+
+bad_tpt:
+ driver = smtp
+ connect_timeout = 1s
+ event_action = ${acl {ev_log}}
+
+tofile:
+ driver = appendfile
+ file = DIR/test-mail/$local_part
+ user = CALLER
+ event_action = ${acl {ev_log}}
+
+begin retry
+
+* * F,1m,3s
+# End
diff --git a/test/log/0618 b/test/log/0618
new file mode 100644
index 000000000..970771171
--- /dev/null
+++ b/test/log/0618
@@ -0,0 +1,63 @@
+1999-03-02 09:44:33 Start queue run: pid=pppp
+1999-03-02 09:44:33 10HmaX-0005vi-00 event tcp:connect
+1999-03-02 09:44:33 10HmaX-0005vi-00 event smtp:connect
+1999-03-02 09:44:33 10HmaX-0005vi-00 event tcp:close
+1999-03-02 09:44:33 10HmaX-0005vi-00 ** rmt_reject@test.ex R=r2 T=smtp H=127.0.0.1 [127.0.0.1]: SMTP error from remote mail server after RCPT TO:<rmt_reject@test.ex>: 550 Administrative prohibition
+1999-03-02 09:44:33 10HmaX-0005vi-00 event msg:fail:delivery
+1999-03-02 09:44:33 10HmaX-0005vi-00 rmt_reject@test.ex: error ignored
+1999-03-02 09:44:33 10HmaX-0005vi-00 Completed
+1999-03-02 09:44:33 10HmaX-0005vi-00 event msg:complete
+1999-03-02 09:44:33 10HmaY-0005vi-00 event tcp:connect
+1999-03-02 09:44:33 10HmaY-0005vi-00 event smtp:connect
+1999-03-02 09:44:33 10HmaY-0005vi-00 event tcp:close
+1999-03-02 09:44:33 10HmaY-0005vi-00 => rmt_accept@test.ex R=r2 T=smtp H=127.0.0.1 [127.0.0.1] C="250 OK id=10HmaZ-0005vi-00"
+1999-03-02 09:44:33 10HmaY-0005vi-00 event msg:delivery
+1999-03-02 09:44:33 10HmaY-0005vi-00 Completed
+1999-03-02 09:44:33 10HmaY-0005vi-00 event msg:complete
+1999-03-02 09:44:33 10HmbA-0005vi-00 event tcp:connect
+1999-03-02 09:44:33 10HmbA-0005vi-00 event smtp:connect
+1999-03-02 09:44:33 10HmbA-0005vi-00 event msg:rcpt:host:defer
+1999-03-02 09:44:33 10HmbA-0005vi-00 event msg:rcpt:defer
+1999-03-02 09:44:33 10HmbA-0005vi-00 event tcp:close
+1999-03-02 09:44:33 10HmbA-0005vi-00 == rmt_defer@test.ex R=r2 T=smtp defer (-44) H=127.0.0.1 [127.0.0.1]: SMTP error from remote mail server after RCPT TO:<rmt_defer@test.ex>: 451 Temporary local problem - please try later
+1999-03-02 09:44:33 10HmbB-0005vi-00 event tcp:connect
+1999-03-02 09:44:33 10HmbB-0005vi-00 event smtp:connect
+1999-03-02 09:44:33 10HmbB-0005vi-00 event msg:rcpt:host:defer
+1999-03-02 09:44:33 10HmbB-0005vi-00 event msg:rcpt:defer
+1999-03-02 09:44:33 10HmbB-0005vi-00 event tcp:close
+1999-03-02 09:44:33 10HmbB-0005vi-00 == rmt_defer@test.ex R=r2 T=smtp defer (-44) H=127.0.0.1 [127.0.0.1]: SMTP error from remote mail server after RCPT TO:<rmt_defer@test.ex>: 451 Temporary local problem - please try later
+1999-03-02 09:44:33 End queue run: pid=pppp
+1999-03-02 09:44:33 Start queue run: pid=pppp
+1999-03-02 09:44:33 10HmbA-0005vi-00 event tcp:connect
+1999-03-02 09:44:33 10HmbA-0005vi-00 event smtp:connect
+1999-03-02 09:44:33 10HmbA-0005vi-00 event msg:rcpt:host:defer
+1999-03-02 09:44:33 10HmbA-0005vi-00 event msg:rcpt:defer
+1999-03-02 09:44:33 10HmbA-0005vi-00 event tcp:close
+1999-03-02 09:44:33 10HmbA-0005vi-00 == rmt_defer@test.ex R=r2 T=smtp defer (-44) H=127.0.0.1 [127.0.0.1]: SMTP error from remote mail server after RCPT TO:<rmt_defer@test.ex>: 451 Temporary local problem - please try later
+1999-03-02 09:44:33 10HmbC-0005vi-00 <= <> R=10HmbA-0005vi-00 U=EXIMUSER P=local S=sss for c@dump.ex
+1999-03-02 09:44:33 10HmbB-0005vi-00 event tcp:connect
+1999-03-02 09:44:33 10HmbB-0005vi-00 event smtp:connect
+1999-03-02 09:44:33 10HmbB-0005vi-00 event msg:rcpt:host:defer
+1999-03-02 09:44:33 10HmbB-0005vi-00 event msg:rcpt:defer
+1999-03-02 09:44:33 10HmbB-0005vi-00 event tcp:close
+1999-03-02 09:44:33 10HmbB-0005vi-00 == rmt_defer@test.ex R=r2 T=smtp defer (-44) H=127.0.0.1 [127.0.0.1]: SMTP error from remote mail server after RCPT TO:<rmt_defer@test.ex>: 451 Temporary local problem - please try later
+1999-03-02 09:44:33 10HmaZ-0005vi-00 => rmt_accept <rmt_accept@test.ex> R=r1 T=tofile
+1999-03-02 09:44:33 10HmaZ-0005vi-00 event msg:delivery
+1999-03-02 09:44:33 10HmbD-0005vi-00 <= <> R=10HmaZ-0005vi-00 U=EXIMUSER P=local S=sss for b@dump.ex
+1999-03-02 09:44:33 10HmaZ-0005vi-00 Completed
+1999-03-02 09:44:33 10HmaZ-0005vi-00 event msg:complete
+1999-03-02 09:44:33 End queue run: pid=pppp
+
+******** 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 exim x.yz daemon started: pid=pppp, no queue runs, listening for SMTP on port 1225
+1999-03-02 09:44:33 10HmaX-0005vi-00 <= a@dump.ex H=(testclient) [ip4.ip4.ip4.ip4] P=esmtp S=sss for rmt_reject@test.ex
+1999-03-02 09:44:33 10HmaY-0005vi-00 <= b@dump.ex H=(testclient) [ip4.ip4.ip4.ip4] P=esmtp S=sss for rmt_accept@test.ex
+1999-03-02 09:44:33 10HmbA-0005vi-00 <= c@dump.ex H=(testclient) [ip4.ip4.ip4.ip4] P=esmtp S=sss for rmt_defer@test.ex
+1999-03-02 09:44:33 10HmbB-0005vi-00 <= d@dump.ex H=(testclient) [ip4.ip4.ip4.ip4] P=esmtp S=sss for rmt_defer@test.ex
+1999-03-02 09:44:33 H=localhost (myhost.test.ex) [127.0.0.1] F=<a@dump.ex> rejected RCPT <rmt_reject@test.ex>
+1999-03-02 09:44:33 10HmaZ-0005vi-00 <= b@dump.ex H=localhost (myhost.test.ex) [127.0.0.1] P=esmtp S=sss for rmt_accept@test.ex
+1999-03-02 09:44:33 H=localhost (myhost.test.ex) [127.0.0.1] F=<c@dump.ex> temporarily rejected RCPT <rmt_defer@test.ex>
+1999-03-02 09:44:33 H=localhost (myhost.test.ex) [127.0.0.1] F=<d@dump.ex> temporarily rejected RCPT <rmt_defer@test.ex>
+1999-03-02 09:44:33 H=localhost (myhost.test.ex) [127.0.0.1] F=<c@dump.ex> temporarily rejected RCPT <rmt_defer@test.ex>
+1999-03-02 09:44:33 H=localhost (myhost.test.ex) [127.0.0.1] F=<d@dump.ex> temporarily rejected RCPT <rmt_defer@test.ex>
diff --git a/test/mail/0618.rmt_accept b/test/mail/0618.rmt_accept
new file mode 100644
index 000000000..3f1121556
--- /dev/null
+++ b/test/mail/0618.rmt_accept
@@ -0,0 +1,14 @@
+From b@dump.ex Tue Mar 02 09:44:33 1999
+Received: from localhost ([127.0.0.1] helo=myhost.test.ex)
+ by myhost.test.ex with esmtp (Exim x.yz)
+ (envelope-from <b@dump.ex>)
+ id 10HmaZ-0005vi-00
+ for rmt_accept@test.ex; Tue, 2 Mar 1999 09:44:33 +0000
+Received: from [ip4.ip4.ip4.ip4] (helo=testclient)
+ by myhost.test.ex with esmtp (Exim x.yz)
+ (envelope-from <b@dump.ex>)
+ id 10HmaY-0005vi-00
+ for rmt_accept@test.ex; Tue, 2 Mar 1999 09:44:33 +0000
+Subject: test
+
+
diff --git a/test/rejectlog/0618 b/test/rejectlog/0618
new file mode 100644
index 000000000..4c495d0e0
--- /dev/null
+++ b/test/rejectlog/0618
@@ -0,0 +1,7 @@
+
+******** SERVER ********
+1999-03-02 09:44:33 H=localhost (myhost.test.ex) [127.0.0.1] F=<a@dump.ex> rejected RCPT <rmt_reject@test.ex>
+1999-03-02 09:44:33 H=localhost (myhost.test.ex) [127.0.0.1] F=<c@dump.ex> temporarily rejected RCPT <rmt_defer@test.ex>
+1999-03-02 09:44:33 H=localhost (myhost.test.ex) [127.0.0.1] F=<d@dump.ex> temporarily rejected RCPT <rmt_defer@test.ex>
+1999-03-02 09:44:33 H=localhost (myhost.test.ex) [127.0.0.1] F=<c@dump.ex> temporarily rejected RCPT <rmt_defer@test.ex>
+1999-03-02 09:44:33 H=localhost (myhost.test.ex) [127.0.0.1] F=<d@dump.ex> temporarily rejected RCPT <rmt_defer@test.ex>
diff --git a/test/scripts/0000-Basic/0618 b/test/scripts/0000-Basic/0618
new file mode 100644
index 000000000..c09322844
--- /dev/null
+++ b/test/scripts/0000-Basic/0618
@@ -0,0 +1,112 @@
+# DSN ESMTP extension RCPT options
+#
+# Server does not advertise by default
+exim -DSERVER=server -bd -oX PORT_D
+****
+client 127.0.0.1 PORT_D
+??? 220
+EHLO testclient
+??? 250-
+??? 250-SIZE
+??? 250 HELP
+****
+killdaemon
+#
+#
+# Server does advertise when told. Client requests no bounces, and this one gets a reject.
+exim -DSERVER=server -DOPT=y -bd -oX PORT_D
+****
+client HOSTIPV4 PORT_D
+??? 220
+EHLO testclient
+??? 250-
+??? 250-SIZE
+??? 250-DSN
+??? 250 HELP
+MAIL FROM:<a@dump.ex>
+??? 250
+RCPT TO:<any@test.ex> NOTIFY=foo
+??? 501
+RCPT TO:<rmt_reject@test.ex> NOTIFY=never
+??? 250
+DATA
+??? 354
+Subject: test
+.
+??? 250
+QUIT
+??? 221
+****
+# Client requests delivery notification; the server supports DSN to takes responsibility
+client HOSTIPV4 PORT_D
+??? 220
+EHLO testclient
+??? 250-
+??? 250-SIZE
+??? 250-DSN
+??? 250 HELP
+MAIL FROM:<b@dump.ex>
+??? 250
+RCPT TO:<rmt_accept@test.ex> NOTIFY=success
+??? 250
+DATA
+??? 354
+Subject: test
+.
+??? 250
+QUIT
+??? 221
+****
+# Client requests notification of deferral. First time of trying, the
+# queue-time probably has not hit the 1st retry time yet, so no DSN will
+# be sent and the message remains queued.
+client HOSTIPV4 PORT_D
+??? 220
+EHLO testclient
+??? 250-
+??? 250-SIZE
+??? 250-DSN
+??? 250 HELP
+MAIL FROM:<c@dump.ex>
+??? 250
+RCPT TO:<rmt_defer@test.ex> NOTIFY=delay
+??? 250
+DATA
+??? 354
+Subject: test
+.
+??? 250
+QUIT
+??? 221
+****
+# Clients requests no DSNs, and this one gets deferred
+client HOSTIPV4 PORT_D
+??? 220
+EHLO testclient
+??? 250-
+??? 250-SIZE
+??? 250-DSN
+??? 250 HELP
+MAIL FROM:<d@dump.ex>
+??? 250
+RCPT TO:<rmt_defer@test.ex> NOTIFY=never
+??? 250
+DATA
+??? 354
+Subject: test
+.
+??? 250
+QUIT
+??? 221
+****
+# This attemmpt the set of all the above, for the first time.
+exim -q
+****
+sleep 3
+# Second time, for the queued deferrals. Final delivery for the acceptance.
+exim -q
+****
+killdaemon
+#
+#
+no_msglog_check
diff --git a/test/stdout/0618 b/test/stdout/0618
new file mode 100644
index 000000000..a04553a0b
--- /dev/null
+++ b/test/stdout/0618
@@ -0,0 +1,130 @@
+Connecting to 127.0.0.1 port 1225 ... connected
+??? 220
+<<< 220 myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000
+>>> EHLO testclient
+??? 250-
+<<< 250-myhost.test.ex Hello testclient [127.0.0.1]
+??? 250-SIZE
+<<< 250-SIZE 52428800
+??? 250 HELP
+<<< 250 HELP
+End of script
+Connecting to ip4.ip4.ip4.ip4 port 1225 ... connected
+??? 220
+<<< 220 myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000
+>>> EHLO testclient
+??? 250-
+<<< 250-myhost.test.ex Hello testclient [ip4.ip4.ip4.ip4]
+??? 250-SIZE
+<<< 250-SIZE 52428800
+??? 250-DSN
+<<< 250-DSN
+??? 250 HELP
+<<< 250 HELP
+>>> MAIL FROM:<a@dump.ex>
+??? 250
+<<< 250 OK
+>>> RCPT TO:<any@test.ex> NOTIFY=foo
+??? 501
+<<< 501 Invalid value for NOTIFY parameter
+>>> RCPT TO:<rmt_reject@test.ex> NOTIFY=never
+??? 250
+<<< 250 Accepted
+>>> DATA
+??? 354
+<<< 354 Enter message, ending with "." on a line by itself
+>>> Subject: test
+>>> .
+??? 250
+<<< 250 OK id=10HmaX-0005vi-00
+>>> QUIT
+??? 221
+<<< 221 myhost.test.ex closing connection
+End of script
+Connecting to ip4.ip4.ip4.ip4 port 1225 ... connected
+??? 220
+<<< 220 myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000
+>>> EHLO testclient
+??? 250-
+<<< 250-myhost.test.ex Hello testclient [ip4.ip4.ip4.ip4]
+??? 250-SIZE
+<<< 250-SIZE 52428800
+??? 250-DSN
+<<< 250-DSN
+??? 250 HELP
+<<< 250 HELP
+>>> MAIL FROM:<b@dump.ex>
+??? 250
+<<< 250 OK
+>>> RCPT TO:<rmt_accept@test.ex> NOTIFY=success
+??? 250
+<<< 250 Accepted
+>>> DATA
+??? 354
+<<< 354 Enter message, ending with "." on a line by itself
+>>> Subject: test
+>>> .
+??? 250
+<<< 250 OK id=10HmaY-0005vi-00
+>>> QUIT
+??? 221
+<<< 221 myhost.test.ex closing connection
+End of script
+Connecting to ip4.ip4.ip4.ip4 port 1225 ... connected
+??? 220
+<<< 220 myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000
+>>> EHLO testclient
+??? 250-
+<<< 250-myhost.test.ex Hello testclient [ip4.ip4.ip4.ip4]
+??? 250-SIZE
+<<< 250-SIZE 52428800
+??? 250-DSN
+<<< 250-DSN
+??? 250 HELP
+<<< 250 HELP
+>>> MAIL FROM:<c@dump.ex>
+??? 250
+<<< 250 OK
+>>> RCPT TO:<rmt_defer@test.ex> NOTIFY=delay
+??? 250
+<<< 250 Accepted
+>>> DATA
+??? 354
+<<< 354 Enter message, ending with "." on a line by itself
+>>> Subject: test
+>>> .
+??? 250
+<<< 250 OK id=10HmbA-0005vi-00
+>>> QUIT
+??? 221
+<<< 221 myhost.test.ex closing connection
+End of script
+Connecting to ip4.ip4.ip4.ip4 port 1225 ... connected
+??? 220
+<<< 220 myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000
+>>> EHLO testclient
+??? 250-
+<<< 250-myhost.test.ex Hello testclient [ip4.ip4.ip4.ip4]
+??? 250-SIZE
+<<< 250-SIZE 52428800
+??? 250-DSN
+<<< 250-DSN
+??? 250 HELP
+<<< 250 HELP
+>>> MAIL FROM:<d@dump.ex>
+??? 250
+<<< 250 OK
+>>> RCPT TO:<rmt_defer@test.ex> NOTIFY=never
+??? 250
+<<< 250 Accepted
+>>> DATA
+??? 354
+<<< 354 Enter message, ending with "." on a line by itself
+>>> Subject: test
+>>> .
+??? 250
+<<< 250 OK id=10HmbB-0005vi-00
+>>> QUIT
+??? 221
+<<< 221 myhost.test.ex closing connection
+End of script