# 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-LIMITS
??? 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
****
exim -z rej/never
****
client HOSTIPV4 PORT_D
??? 220
EHLO testclient
??? 250-
??? 250-SIZE
??? 250-LIMITS
??? 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
****
exim -q
****
#
# Client requests delivery notification; the server supports DSN so takes responsibility
exim -z accept/success
****
client HOSTIPV4 PORT_D
??? 220
EHLO testclient
??? 250-
??? 250-SIZE
??? 250-LIMITS
??? 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
****
# MSA send msg to MDA
exim -q
****
# deliver msg at MDA
exim -q
****
# deliver notification from MDA
exim -q
****
#
# Client requests delivery notification; the MSA & MDA supports DSN
# but MDA fake-rejects msg.
# The MDA should not send a delivery notification for this case.
exim -z fakereject/success
****
client HOSTIPV4 PORT_D
??? 220
EHLO testclient
??? 250-
??? 250-SIZE
??? 250-LIMITS
??? 250-DSN
??? 250 HELP
MAIL FROM:<b2@dump.ex>
??? 250
RCPT TO:<rmt_fakereject@test.ex> NOTIFY=success
??? 250
DATA
??? 354
Subject: test
.
??? 250
QUIT
??? 221
****
# MSA (try to) send msg to MDA; should see a reject
exim -q
****
# due to fake, should be a msg to deliver at MDA
# no DSN should be generated
exim -q
****
# should be no notification to deliver from MDA
exim -q
****
#
# Client requests notification of deferral.  First time of trying, we get
# a defer but queue-time probably has not hit the 1st retry time yet, so no DSN
# will be sent and the message remains queued.  Then, claiming time has elapsed,
# we will look again (expecting a delay-DSN to be produced).  We won't see a
# retry since the actual retry time has not passed.
exim -z defer/delay
****
client HOSTIPV4 PORT_D
??? 220
EHLO testclient
??? 250-
??? 250-SIZE
??? 250-LIMITS
??? 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
****
exim -q
****
#
# Clients requests no DSNs, and this one gets deferred
exim -z defer/never
****
client HOSTIPV4 PORT_D
??? 220
EHLO testclient
??? 250-
??? 250-SIZE
??? 250-LIMITS
??? 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
****
exim -q
****
#
#
#
# Second time, for the queued deferrals.
# We should see the notify for c@dump.ex but not d@dump.ex
exim -z playout
****
exim -Tqt 10s/ -q
****
sleep 1
exim -Mrm $msg1 $msg2
****
#
#
#
#
# Client requests bounce+delay notification; bounce happens
exim -z rej/failure+delay
****
client HOSTIPV4 PORT_D
??? 220
EHLO testclient
??? 250-
??? 250-SIZE
??? 250-LIMITS
??? 250-DSN
??? 250 HELP
MAIL FROM:<e@dump.ex>
??? 250
RCPT TO:<rmt_reject@test.ex> NOTIFY=fAiLuRe,DELAY
??? 250
DATA
??? 354
Subject: test
.
??? 250
QUIT
??? 221
****
# MSA send msg to MDA
exim -q
****
# deliver notification from MDA
exim -z 'deliver DSN'
****
exim -q
****
sleep 1
killdaemon
#
#
no_msglog_check
