diff options
author | Jeremy Harris <jgh146exb@wizmail.org> | 2021-04-18 01:51:28 +0100 |
---|---|---|
committer | Jeremy Harris <jgh146exb@wizmail.org> | 2021-04-18 01:51:28 +0100 |
commit | a1108b5118d32e969c5fe91b2110944f7483a7cb (patch) | |
tree | 3540d45b5de8d0fa2fccac2c6b1903ff69f6a117 /test/scripts/4710-esmtp-limits | |
parent | 4022c6568fa89eb47e0d78f86f7b7cfbcfefcdc4 (diff) |
Experimental: ESMTP LIMITS extension
Diffstat (limited to 'test/scripts/4710-esmtp-limits')
-rw-r--r-- | test/scripts/4710-esmtp-limits/4710 | 86 | ||||
-rw-r--r-- | test/scripts/4710-esmtp-limits/4711 | 138 | ||||
-rw-r--r-- | test/scripts/4710-esmtp-limits/4712 | 65 | ||||
-rw-r--r-- | test/scripts/4710-esmtp-limits/4713 | 64 | ||||
-rw-r--r-- | test/scripts/4710-esmtp-limits/4714 | 84 | ||||
-rw-r--r-- | test/scripts/4710-esmtp-limits/REQUIRES | 1 |
6 files changed, 438 insertions, 0 deletions
diff --git a/test/scripts/4710-esmtp-limits/4710 b/test/scripts/4710-esmtp-limits/4710 new file mode 100644 index 000000000..875613cab --- /dev/null +++ b/test/scripts/4710-esmtp-limits/4710 @@ -0,0 +1,86 @@ +# ESMTP LIMITS extension, server +# +# Baseline: advertised by default +exim -DSERVER=server -bd -oX PORT_D +**** +client 127.0.0.1 PORT_D +??? 220 +EHLO tester +??? 250- +??? 250-SIZE +??? 250-LIMITS MAILMAX=1000 +??? 250 +**** +killdaemon +# +# not advertised when disabled +exim -DSERVER=server -DCONTROL=disable -bd -oX PORT_D +**** +client 127.0.0.1 PORT_D +??? 220 +EHLO tester +??? 250- +??? 250-SIZE +??? 250-8BITMIME +**** +killdaemon +# +# smtp_accept_max_per_connection controls the MAILMAX value advertised, and is expanded +exim -DSERVER=server -DMAXNM=42 -bd -oX PORT_D +**** +client 127.0.0.1 PORT_D +??? 220 +EHLO tester +??? 250- +??? 250-SIZE +??? 250-LIMITS MAILMAX=42 +??? 250 +**** +client HOSTIPV4 PORT_D +??? 220 +EHLO tester +??? 250- +??? 250-SIZE +??? 250-LIMITS MAILMAX=44 +??? 250 +**** +killdaemon +# +# +# not advertised when zero and no RCPTMAX +exim -DSERVER=server -DMAXNM=0 -bd -oX PORT_D +**** +client 127.0.0.1 PORT_D +??? 220 +EHLO tester +??? 250- +??? 250-SIZE +??? 250 +**** +killdaemon +# +# reeipients_max controls an advertised RCPTMAX +exim -DSERVER=server -DRCPT_MSG=5 -bd -oX PORT_D +**** +client 127.0.0.1 PORT_D +??? 220 +EHLO tester +??? 250- +??? 250-SIZE +??? 250-LIMITS MAILMAX=1000 RCPTMAX=5 +??? 250 +**** +killdaemon +# +# RCPTMAX can appear on its own +exim -DSERVER=server -DMAXNM=0 -DRCPT_MSG=5 -bd -oX PORT_D +**** +client 127.0.0.1 PORT_D +??? 220 +EHLO tester +??? 250- +??? 250-SIZE +??? 250-LIMITS RCPTMAX=5 +??? 250 +**** +killdaemon diff --git a/test/scripts/4710-esmtp-limits/4711 b/test/scripts/4710-esmtp-limits/4711 new file mode 100644 index 000000000..ffbfa07d0 --- /dev/null +++ b/test/scripts/4710-esmtp-limits/4711 @@ -0,0 +1,138 @@ +# ESMTP LIMITS extension, client RCPTMAX +# +# Baseline: no RCPTMAX advertised, can send 5 RCPT commands +server PORT_D +220 Hi there +EHLO +250-yeah mate +250 LIMITS MAILMAX=10 +MAIL FROM +250 mail cmd good +RCPT TO +250 rcpt cmd 1 good +RCPT TO +250 rcpt cmd 2 good +RCPT TO +250 rcpt cmd 3 good +RCPT TO +250 rcpt cmd 4 good +RCPT TO +250 rcpt cmd 5 good +DATA +352 go ahead +. +250 message received +QUIT +220 bye +**** +exim -odi a@test.ex b@test.ex c@test.ex d@test.ex e@test.ex +**** +# +# RCPTMAX advertised, limits RCPT commands +# Client should immediate-retry fusther MAIL transaction for remaning rcpts +server PORT_D +220 Hi there +EHLO +250-yeah mate +250 LIMITS RCPTMAX=2 +MAIL FROM +250 mail cmd good +RCPT TO +250 rcpt cmd 1 good +RCPT TO +250 rcpt cmd 2 good +DATA +352 go ahead +. +250 message received +MAIL FROM +250 mail cmd good +RCPT TO +250 rcpt cmd 3 good +RCPT TO +250 rcpt cmd 4 good +DATA +352 go ahead +. +250 message received +MAIL FROM +250 mail cmd good +RCPT TO +250 rcpt cmd 5 good +DATA +352 go ahead +. +250 message received +QUIT +220 bye +**** +exim -odi a@test.ex b@test.ex c@test.ex d@test.ex e@test.ex +**** +# +# RCPTMAX advertised, overrides larger tpt max_rcpt and limits RCPT commands +server PORT_D +220 Hi there +EHLO +250-yeah mate +250 LIMITS RCPTMAX=2 +MAIL FROM +250 mail cmd good +RCPT TO +250 rcpt cmd 1 good +RCPT TO +250 rcpt cmd 2 good +DATA +352 go ahead +. +250 message received +MAIL FROM +250 mail cmd good +RCPT TO +250 rcpt cmd 3 good +DATA +352 go ahead +. +250 message received +QUIT +220 bye +**** +exim -odi -DRCPT_MSG=3 a@test.ex b@test.ex c@test.ex +**** +# +# RCPTMAX advertised, does not override smaller tpt max_rcpt which limits RCPT commands +# Client make a separate conn for the second transaction +server PORT_D 2 +220 Hi there +EHLO +250-yeah mate +250 LIMITS RCPTMAX=3 +MAIL FROM +250 mail cmd good +RCPT TO +250 rcpt cmd 1 good +RCPT TO +250 rcpt cmd 2 good +DATA +352 go ahead +. +250 message received +QUIT +220 bye +*eof +220 Hi there +EHLO +250-yeah mate +250 LIMITS RCPTMAX=3 +MAIL FROM +250 mail cmd good +RCPT TO +250 rcpt cmd 3 good +DATA +352 go ahead +. +250 message received +QUIT +220 bye +**** +exim -odi -DRCPT_MSG=2 a@test.ex b@test.ex c@test.ex +**** diff --git a/test/scripts/4710-esmtp-limits/4712 b/test/scripts/4710-esmtp-limits/4712 new file mode 100644 index 000000000..c5d1cab4e --- /dev/null +++ b/test/scripts/4710-esmtp-limits/4712 @@ -0,0 +1,65 @@ +# ESMTP LIMITS extension, client MAILMAX +# +# Baseline: no MAILMAX advertised, can send 2 messages +# - limiting the RCPT to 1 is convenient to get the multiple messages +server PORT_D +220 Hi there +EHLO +250-yeah mate +250 LIMITS RCPTMAX=1 +MAIL FROM +250 mail cmd 1 good +RCPT TO +250 rcpt cmd good +DATA +352 go ahead +. +250 message received +MAIL FROM +250 mail cmd 2 good +RCPT TO +250 rcpt cmd good +DATA +352 go ahead +. +250 message received +QUIT +220 bye +**** +exim -odi a@test.ex b@test.ex +**** +# +# limited to one MAIL per conn. Client should immediate-retry a second one. +server PORT_D 2 +220 Hi there +EHLO +250-yeah mate +250 LIMITS RCPTMAX=1 MAILMAX=1 +MAIL FROM +250 mail cmd 1 good +RCPT TO +250 rcpt cmd good +DATA +352 go ahead +. +250 message received +QUIT +220 bye +*eof +220 Hi there +EHLO +250-yeah mate +250 LIMITS RCPTMAX=1 MAILMAX=1 +MAIL FROM +250 mail cmd 2 good +RCPT TO +250 rcpt cmd good +DATA +352 go ahead +. +250 message received +QUIT +220 bye +**** +exim -odi a@test.ex b@test.ex +**** diff --git a/test/scripts/4710-esmtp-limits/4713 b/test/scripts/4710-esmtp-limits/4713 new file mode 100644 index 000000000..6003f2729 --- /dev/null +++ b/test/scripts/4710-esmtp-limits/4713 @@ -0,0 +1,64 @@ +# ESMTP LIMITS extension, client RCPTDOMAINMAX Limit +# +# Baseline: no RCPTDOMAINMAX Limit advertised, can send RCPT commands with distinct domains +server PORT_D +220 Hi there +EHLO +250-yeah mate +250 LIMITS MAILMAX=10 +MAIL FROM +250 mail cmd good +RCPT TO +250 rcpt cmd 1 good +RCPT TO +250 rcpt cmd 2 good +DATA +352 go ahead +. +250 message received +QUIT +220 bye +**** +exim -odi a@a.test.ex b@b.test.ex +**** +# +# RCPTDOMAINMAX Limit advertised, second domain temp-rejected +# Client should immediate-retry further MAIL transactions for remaining rcpts +server PORT_D +220 Hi there +EHLO +250-yeah mate +250 LIMITS MAILMAX=10 RCPTDOMAINMAX=100 +MAIL FROM +250 mail cmd good +RCPT TO:<a@a.test.ex> +250 rcpt cmd 1 good +RCPT TO:<a2@a.test.ex> +250 rcpt cmd 2 good +DATA +352 go ahead +. +250 message received +MAIL FROM +250 second mail cmd good +RCPT TO:<b@b.test.ex> +250 rcpt cmd 1 good +RCPT TO +250 rcpt cmd 2 good +DATA +352 go ahead +. +250 second message received +MAIL FROM +250 third mail cmd good +RCPT TO:<c@c.test.ex> +250 rcpt cmd 1 good +DATA +352 go ahead +. +250 third message received +QUIT +220 bye +**** +exim -odi a@a.test.ex b@b.test.ex c@c.test.ex a2@a.test.ex b2@b.test.ex +**** diff --git a/test/scripts/4710-esmtp-limits/4714 b/test/scripts/4710-esmtp-limits/4714 new file mode 100644 index 000000000..f97d989e8 --- /dev/null +++ b/test/scripts/4710-esmtp-limits/4714 @@ -0,0 +1,84 @@ +# ESMTP LIMITS extension, client continued-connection +# +# queue up 3 messages each with 2 recipients +exim -odq r1_1.test.ex r1_2.test.ex +Subject: message 1 +**** +exim -odq r2_1.test.ex r2_2.test.ex +Subject: message 2 +**** +exim -odq r3_1.test.ex r3_2.test.ex +Subject: message 3 +**** +# +# Handed limits of 5 MAIL, 1 RCPT, expect to use 5 transactions in a one connection +# when the client does a 2-phase queue run, followed by one transaction in one connection +# from the same queue run. +# The second pair and third initial should be from continued-connection trasports, flagged by the log lines. +server PORT_D 2 +220 Hi there +EHLO +250-yeah mate +250 LIMITS MAILMAX=5 RCPTMAX=1 +MAIL FROM +250 mail cmd 1 good +RCPT TO +250 rcpt cmd good +DATA +352 go ahead +. +250 message 1 received +MAIL FROM +250 mail cmd 2 good +RCPT TO +250 rcpt cmd good +DATA +352 go ahead +. +250 message 2 received +MAIL FROM +250 mail cmd 3 good +RCPT TO +250 rcpt cmd good +DATA +352 go ahead +. +250 message 3 received +MAIL FROM +250 mail cmd 4 good +RCPT TO +250 rcpt cmd good +DATA +352 go ahead +. +250 message 4 received +MAIL FROM +250 mail cmd 5 good +RCPT TO +250 rcpt cmd good +DATA +352 go ahead +. +250 message 5 received +QUIT +221 bye +*eof +220 Hi there +EHLO +250-yeah mate +250 +MAIL FROM +250 mail cmd 1 good +RCPT TO +250 rcpt cmd good +DATA +352 go ahead +. +250 message 6 received +QUIT +221 bye +*eof +**** +# +exim -qq +**** diff --git a/test/scripts/4710-esmtp-limits/REQUIRES b/test/scripts/4710-esmtp-limits/REQUIRES new file mode 100644 index 000000000..4817265b8 --- /dev/null +++ b/test/scripts/4710-esmtp-limits/REQUIRES @@ -0,0 +1 @@ +support Experimental_ESMTP_Limits |