mirror of
https://github.com/curl/curl.git
synced 2026-07-25 09:47:49 +03:00
smtp: Allow RCPT TO command to fail for some recipients
Introduces CURLOPT_MAIL_RCPT_ALLLOWFAILS. Verified with the new tests 3002-3007 Closes #4816
This commit is contained in:
parent
23a17e039d
commit
4a4609bf3c
22 changed files with 483 additions and 26 deletions
|
|
@ -208,4 +208,5 @@ test2078 \
|
|||
test2080 \
|
||||
test2100 \
|
||||
\
|
||||
test3000 test3001
|
||||
test3000 test3001 \
|
||||
test3002 test3003 test3004 test3005 test3006 test3007
|
||||
|
|
|
|||
55
tests/data/test3002
Normal file
55
tests/data/test3002
Normal file
|
|
@ -0,0 +1,55 @@
|
|||
<testcase>
|
||||
<info>
|
||||
<keywords>
|
||||
SMTP
|
||||
</keywords>
|
||||
</info>
|
||||
|
||||
#
|
||||
# Server-side
|
||||
<reply>
|
||||
</reply>
|
||||
|
||||
#
|
||||
# Client-side
|
||||
<client>
|
||||
<server>
|
||||
smtp
|
||||
</server>
|
||||
<name>
|
||||
SMTP with multiple and invalid (first) --mail-rcpt and --mail-rcpt-allowfails
|
||||
</name>
|
||||
<stdin>
|
||||
From: different
|
||||
To: another
|
||||
|
||||
body
|
||||
</stdin>
|
||||
<command>
|
||||
smtp://%HOSTIP:%SMTPPORT/3002 --mail-rcpt-allowfails --mail-rcpt invalid.one --mail-rcpt recipient.two@example.com --mail-rcpt recipient.three@example.com --mail-rcpt recipient.four@example.com --mail-rcpt recipient.five@example.com --mail-from sender@example.com -T -
|
||||
</command>
|
||||
</client>
|
||||
|
||||
#
|
||||
# Verify data after the test has been "shot"
|
||||
<verify>
|
||||
<protocol>
|
||||
EHLO 3002
|
||||
MAIL FROM:<sender@example.com>
|
||||
RCPT TO:<invalid.one>
|
||||
RCPT TO:<recipient.two@example.com>
|
||||
RCPT TO:<recipient.three@example.com>
|
||||
RCPT TO:<recipient.four@example.com>
|
||||
RCPT TO:<recipient.five@example.com>
|
||||
DATA
|
||||
QUIT
|
||||
</protocol>
|
||||
<upload>
|
||||
From: different
|
||||
To: another
|
||||
|
||||
body
|
||||
.
|
||||
</upload>
|
||||
</verify>
|
||||
</testcase>
|
||||
55
tests/data/test3003
Normal file
55
tests/data/test3003
Normal file
|
|
@ -0,0 +1,55 @@
|
|||
<testcase>
|
||||
<info>
|
||||
<keywords>
|
||||
SMTP
|
||||
</keywords>
|
||||
</info>
|
||||
|
||||
#
|
||||
# Server-side
|
||||
<reply>
|
||||
</reply>
|
||||
|
||||
#
|
||||
# Client-side
|
||||
<client>
|
||||
<server>
|
||||
smtp
|
||||
</server>
|
||||
<name>
|
||||
SMTP with multiple and invalid (last) --mail-rcpt and --mail-rcpt-allowfails
|
||||
</name>
|
||||
<stdin>
|
||||
From: different
|
||||
To: another
|
||||
|
||||
body
|
||||
</stdin>
|
||||
<command>
|
||||
smtp://%HOSTIP:%SMTPPORT/3003 --mail-rcpt-allowfails --mail-rcpt recipient.one@example.com --mail-rcpt recipient.two@example.com --mail-rcpt recipient.three@example.com --mail-rcpt recipient.four@example.com --mail-rcpt invalid.five --mail-from sender@example.com -T -
|
||||
</command>
|
||||
</client>
|
||||
|
||||
#
|
||||
# Verify data after the test has been "shot"
|
||||
<verify>
|
||||
<protocol>
|
||||
EHLO 3003
|
||||
MAIL FROM:<sender@example.com>
|
||||
RCPT TO:<recipient.one@example.com>
|
||||
RCPT TO:<recipient.two@example.com>
|
||||
RCPT TO:<recipient.three@example.com>
|
||||
RCPT TO:<recipient.four@example.com>
|
||||
RCPT TO:<invalid.five>
|
||||
DATA
|
||||
QUIT
|
||||
</protocol>
|
||||
<upload>
|
||||
From: different
|
||||
To: another
|
||||
|
||||
body
|
||||
.
|
||||
</upload>
|
||||
</verify>
|
||||
</testcase>
|
||||
55
tests/data/test3004
Normal file
55
tests/data/test3004
Normal file
|
|
@ -0,0 +1,55 @@
|
|||
<testcase>
|
||||
<info>
|
||||
<keywords>
|
||||
SMTP
|
||||
</keywords>
|
||||
</info>
|
||||
|
||||
#
|
||||
# Server-side
|
||||
<reply>
|
||||
</reply>
|
||||
|
||||
#
|
||||
# Client-side
|
||||
<client>
|
||||
<server>
|
||||
smtp
|
||||
</server>
|
||||
<name>
|
||||
SMTP with multiple and invalid (middle) --mail-rcpt and --mail-rcpt-allowfails
|
||||
</name>
|
||||
<stdin>
|
||||
From: different
|
||||
To: another
|
||||
|
||||
body
|
||||
</stdin>
|
||||
<command>
|
||||
smtp://%HOSTIP:%SMTPPORT/3004 --mail-rcpt-allowfails --mail-rcpt recipient.one@example.com --mail-rcpt recipient.two@example.com --mail-rcpt invalid.three --mail-rcpt recipient.four@example.com --mail-rcpt recipient.five@example.com --mail-from sender@example.com -T -
|
||||
</command>
|
||||
</client>
|
||||
|
||||
#
|
||||
# Verify data after the test has been "shot"
|
||||
<verify>
|
||||
<protocol>
|
||||
EHLO 3004
|
||||
MAIL FROM:<sender@example.com>
|
||||
RCPT TO:<recipient.one@example.com>
|
||||
RCPT TO:<recipient.two@example.com>
|
||||
RCPT TO:<invalid.three>
|
||||
RCPT TO:<recipient.four@example.com>
|
||||
RCPT TO:<recipient.five@example.com>
|
||||
DATA
|
||||
QUIT
|
||||
</protocol>
|
||||
<upload>
|
||||
From: different
|
||||
To: another
|
||||
|
||||
body
|
||||
.
|
||||
</upload>
|
||||
</verify>
|
||||
</testcase>
|
||||
55
tests/data/test3005
Normal file
55
tests/data/test3005
Normal file
|
|
@ -0,0 +1,55 @@
|
|||
<testcase>
|
||||
<info>
|
||||
<keywords>
|
||||
SMTP
|
||||
</keywords>
|
||||
</info>
|
||||
|
||||
#
|
||||
# Server-side
|
||||
<reply>
|
||||
</reply>
|
||||
|
||||
#
|
||||
# Client-side
|
||||
<client>
|
||||
<server>
|
||||
smtp
|
||||
</server>
|
||||
<name>
|
||||
SMTP with multiple and invalid (all but one) --mail-rcpt and --mail-rcpt-allowfails
|
||||
</name>
|
||||
<stdin>
|
||||
From: different
|
||||
To: another
|
||||
|
||||
body
|
||||
</stdin>
|
||||
<command>
|
||||
smtp://%HOSTIP:%SMTPPORT/3005 --mail-rcpt-allowfails --mail-rcpt invalid.one --mail-rcpt recipient.two@example.com --mail-rcpt invalid.three --mail-rcpt invalid.four --mail-rcpt invalid.five --mail-from sender@example.com -T -
|
||||
</command>
|
||||
</client>
|
||||
|
||||
#
|
||||
# Verify data after the test has been "shot"
|
||||
<verify>
|
||||
<protocol>
|
||||
EHLO 3005
|
||||
MAIL FROM:<sender@example.com>
|
||||
RCPT TO:<invalid.one>
|
||||
RCPT TO:<recipient.two@example.com>
|
||||
RCPT TO:<invalid.three>
|
||||
RCPT TO:<invalid.four>
|
||||
RCPT TO:<invalid.five>
|
||||
DATA
|
||||
QUIT
|
||||
</protocol>
|
||||
<upload>
|
||||
From: different
|
||||
To: another
|
||||
|
||||
body
|
||||
.
|
||||
</upload>
|
||||
</verify>
|
||||
</testcase>
|
||||
51
tests/data/test3006
Normal file
51
tests/data/test3006
Normal file
|
|
@ -0,0 +1,51 @@
|
|||
<testcase>
|
||||
<info>
|
||||
<keywords>
|
||||
SMTP
|
||||
</keywords>
|
||||
</info>
|
||||
|
||||
#
|
||||
# Server-side
|
||||
<reply>
|
||||
</reply>
|
||||
|
||||
#
|
||||
# Client-side
|
||||
<client>
|
||||
<server>
|
||||
smtp
|
||||
</server>
|
||||
<name>
|
||||
SMTP with multiple invalid (all) --mail-rcpt and --mail-rcpt-allowfails
|
||||
</name>
|
||||
<stdin>
|
||||
From: different
|
||||
To: another
|
||||
|
||||
body
|
||||
</stdin>
|
||||
<command>
|
||||
smtp://%HOSTIP:%SMTPPORT/3006 --mail-rcpt-allowfails --mail-rcpt invalid.one --mail-rcpt invalid.two --mail-rcpt invalid.three --mail-rcpt invalid.four --mail-rcpt invalid.five --mail-from sender@example.com -T -
|
||||
</command>
|
||||
</client>
|
||||
|
||||
#
|
||||
# Verify data after the test has been "shot"
|
||||
<verify>
|
||||
# 55 - CURLE_SEND_ERROR
|
||||
<errorcode>
|
||||
55
|
||||
</errorcode>
|
||||
<protocol>
|
||||
EHLO 3006
|
||||
MAIL FROM:<sender@example.com>
|
||||
RCPT TO:<invalid.one>
|
||||
RCPT TO:<invalid.two>
|
||||
RCPT TO:<invalid.three>
|
||||
RCPT TO:<invalid.four>
|
||||
RCPT TO:<invalid.five>
|
||||
QUIT
|
||||
</protocol>
|
||||
</verify>
|
||||
</testcase>
|
||||
47
tests/data/test3007
Normal file
47
tests/data/test3007
Normal file
|
|
@ -0,0 +1,47 @@
|
|||
<testcase>
|
||||
<info>
|
||||
<keywords>
|
||||
SMTP
|
||||
</keywords>
|
||||
</info>
|
||||
|
||||
#
|
||||
# Server-side
|
||||
<reply>
|
||||
</reply>
|
||||
|
||||
#
|
||||
# Client-side
|
||||
<client>
|
||||
<server>
|
||||
smtp
|
||||
</server>
|
||||
<name>
|
||||
SMTP with invalid --mail-rcpt and --mail-rcpt-allowfails
|
||||
</name>
|
||||
<stdin>
|
||||
From: different
|
||||
To: another
|
||||
|
||||
body
|
||||
</stdin>
|
||||
<command>
|
||||
smtp://%HOSTIP:%SMTPPORT/3007 --mail-rcpt-allowfails --mail-rcpt invalid.one --mail-from sender@example.com -T -
|
||||
</command>
|
||||
</client>
|
||||
|
||||
#
|
||||
# Verify data after the test has been "shot"
|
||||
<verify>
|
||||
# 55 - CURLE_SEND_ERROR
|
||||
<errorcode>
|
||||
55
|
||||
</errorcode>
|
||||
<protocol>
|
||||
EHLO 3007
|
||||
MAIL FROM:<sender@example.com>
|
||||
RCPT TO:<invalid.one>
|
||||
QUIT
|
||||
</protocol>
|
||||
</verify>
|
||||
</testcase>
|
||||
Loading…
Add table
Add a link
Reference in a new issue