Flush SMTP output buffer before "delay" in an ACL; add control =
[exim.git] / test / scripts / 0000-Basic / 0300
1 # SMTP synchronization checks, with and without PIPELINING
2 need_ipv4
3 #
4 exim -DSERVER=server -bd -oX PORT_D
5 ****
6 client 127.0.0.1 PORT_D
7 ??? 220
8 ehlo abcd\r\nmail from:<userx@test.ex>
9 ??? 554
10 ****
11 # The pause (+++ 1) in the middle of this is to be sure the first message is
12 # delivered before generating the sync error; without it, there's a race.
13 client 127.0.0.1 PORT_D
14 ??? 220
15 ehlo abcd
16 ??? 250-
17 ??? 250-
18 ??? 250-
19 ??? 250
20 rset\r\nmail from:<userx@test.ex>\r\nrcpt to:<userx@test.ex>\r\ndata
21 ??? 250
22 ??? 250
23 ??? 250
24 ??? 354
25 the message
26 .\r\nmail from:<userx@test.ex>
27 +++ 1
28 rcpt to:<userx@test.ex>\r\ndata\r\nthe message\r\nsecond line
29 ??? 250
30 ??? 250
31 ??? 250
32 ??? 554
33 ****
34 sleep 1
35 # This time, don't send EHLO
36 client 127.0.0.1 PORT_D
37 ??? 220
38 helo abcd
39 ??? 250
40 mail from:<userx@test.ex>\r\nrcpt to:<userx@test.ex>
41 ??? 554
42 ****
43 # This shouldn't get advertised pipelining
44 client HOSTIPV4 PORT_D
45 ??? 220
46 ehlo abcd
47 ??? 250-
48 ??? 250-
49 ??? 250
50 mail from:<userx@test.ex>\r\nrcpt to:<userx@test.ex>
51 ??? 554
52 ****
53 # Check on unrecognized commands
54 client HOSTIPV4 PORT_D
55 ??? 220
56 junk0
57 ??? 500
58 junk1\r\njunk2
59 ??? 554
60 ****
61 # Check on RSET and QUIT
62 client 127.0.0.1 PORT_D
63 ??? 220
64 ehlo abcd
65 ??? 250-
66 ??? 250-
67 ??? 250-
68 ??? 250
69 rset\r\nquit
70 ??? 250
71 ??? 221
72 ****
73 # Check on RSET and QUIT
74 client HOSTIPV4 PORT_D
75 ??? 220
76 ehlo abcd
77 ??? 250-
78 ??? 250-
79 ??? 250
80 rset\r\nquit
81 ??? 554
82 ****
83 # This one disables the check dynamically
84 client 127.0.0.1 PORT_D
85 ??? 220
86 ehlo dis.able
87 ??? 250-
88 ??? 250-
89 ??? 250-
90 ??? 250
91 mail from:<userx@test.ex>\r\nrcpt to:<userx@test.ex>\r\ndata\r\nthe message\r\nsecond line
92 .
93 ??? 250
94 ??? 250
95 ??? 354
96 ??? 250
97 quit
98 ??? 221
99 ****
100 killdaemon
101 # In these next tests, PIPELINING is not advertised, and the server delays for
102 # 1s before trying to send the banner to give the client time to send input.
103 exim -DPAH= -DDELAY=1s -DSERVER=server -bd -oX PORT_D
104 ****
105 # Send HELO without waiting for greeting
106 client -t2 127.0.0.1 PORT_D
107 helo abcd
108 ??? 554
109 ****
110 # Disconnect without waiting for the greeting. This should
111 # test the check for input that happens before sending the
112 # banner (there was a bug at one point; missing error check).
113 client -t2 127.0.0.1 PORT_D
114 ****
115 killdaemon