49341628b5
...to the client address as this frees the RCPT strings to contain just an email address and by passing the test number into curl as the client address remains consistent with POP3 and IMAP tests as they are specified in the URL.
126 lines
3.1 KiB
Plaintext
126 lines
3.1 KiB
Plaintext
<testcase>
|
|
# Based on test802
|
|
# N.B. --libcurl output not sufficient to deal with uploaded files.
|
|
<info>
|
|
<keywords>
|
|
SMTP
|
|
--libcurl
|
|
</keywords>
|
|
</info>
|
|
|
|
#
|
|
# Server-side
|
|
<reply>
|
|
<servercmd>
|
|
CAPA SIZE
|
|
</servercmd>
|
|
</reply>
|
|
|
|
#
|
|
# Client-side
|
|
<client>
|
|
<server>
|
|
smtp
|
|
</server>
|
|
<name>
|
|
SMTP
|
|
</name>
|
|
<file name="log/test1406.eml">
|
|
From: different
|
|
To: another
|
|
|
|
body
|
|
</file>
|
|
<command>
|
|
smtp://%HOSTIP:%SMTPPORT/1406 --mail-rcpt 1406@example.com --mail-rcpt 1406@foobar.example.com --mail-from 1406@example.com -T log/test1406.eml --libcurl log/test1406.c
|
|
</command>
|
|
</client>
|
|
|
|
#
|
|
# Verify data after the test has been "shot"
|
|
<verify>
|
|
<protocol>
|
|
EHLO 1406
|
|
MAIL FROM:<1406@example.com> SIZE=38
|
|
RCPT TO:<1406@example.com>
|
|
RCPT TO:<1406@foobar.example.com>
|
|
DATA
|
|
QUIT
|
|
</protocol>
|
|
<upload>
|
|
From: different
|
|
To: another
|
|
|
|
body
|
|
.
|
|
</upload>
|
|
<file name="log/test1406.c" mode="text">
|
|
/********* Sample code generated by the curl command line tool **********
|
|
* All curl_easy_setopt() options are documented at:
|
|
* http://curl.haxx.se/libcurl/c/curl_easy_setopt.html
|
|
************************************************************************/
|
|
#include <curl/curl.h>
|
|
|
|
int main(int argc, char *argv[])
|
|
{
|
|
CURLcode ret;
|
|
CURL *hnd;
|
|
struct curl_slist *slist1;
|
|
|
|
slist1 = NULL;
|
|
slist1 = curl_slist_append(slist1, "1406@example.com");
|
|
slist1 = curl_slist_append(slist1, "1406@foobar.example.com");
|
|
|
|
hnd = curl_easy_init();
|
|
curl_easy_setopt(hnd, CURLOPT_INFILESIZE_LARGE, (curl_off_t)38);
|
|
curl_easy_setopt(hnd, CURLOPT_URL, "smtp://%HOSTIP:%SMTPPORT/1406");
|
|
curl_easy_setopt(hnd, CURLOPT_HEADER, 1L);
|
|
curl_easy_setopt(hnd, CURLOPT_UPLOAD, 1L);
|
|
curl_easy_setopt(hnd, CURLOPT_USERAGENT, "stripped");
|
|
curl_easy_setopt(hnd, CURLOPT_MAXREDIRS, 50L);
|
|
curl_easy_setopt(hnd, CURLOPT_VERBOSE, 1L);
|
|
curl_easy_setopt(hnd, CURLOPT_TCP_KEEPALIVE, 1L);
|
|
curl_easy_setopt(hnd, CURLOPT_MAIL_FROM, "1406@example.com");
|
|
curl_easy_setopt(hnd, CURLOPT_MAIL_RCPT, slist1);
|
|
|
|
/* Here is a list of options the curl code used that cannot get generated
|
|
as source easily. You may select to either not use them or implement
|
|
them yourself.
|
|
|
|
CURLOPT_WRITEDATA set to a objectpointer
|
|
CURLOPT_WRITEFUNCTION set to a functionpointer
|
|
CURLOPT_READDATA set to a objectpointer
|
|
CURLOPT_READFUNCTION set to a functionpointer
|
|
CURLOPT_SEEKDATA set to a objectpointer
|
|
CURLOPT_SEEKFUNCTION set to a functionpointer
|
|
CURLOPT_ERRORBUFFER set to a objectpointer
|
|
CURLOPT_STDERR set to a objectpointer
|
|
CURLOPT_DEBUGFUNCTION set to a functionpointer
|
|
CURLOPT_DEBUGDATA set to a objectpointer
|
|
CURLOPT_HEADERFUNCTION set to a functionpointer
|
|
CURLOPT_HEADERDATA set to a objectpointer
|
|
|
|
*/
|
|
|
|
ret = curl_easy_perform(hnd);
|
|
|
|
curl_easy_cleanup(hnd);
|
|
hnd = NULL;
|
|
curl_slist_free_all(slist1);
|
|
slist1 = NULL;
|
|
|
|
return (int)ret;
|
|
}
|
|
/**** End of sample code ****/
|
|
</file>
|
|
<stripfile>
|
|
# curl's default user-agent varies with version, libraries etc.
|
|
s/(USERAGENT, \")[^\"]+/${1}stripped/
|
|
# CURLOPT_SSL_VERIFYPEER and SSH_KNOWNHOSTS vary with configurations - just
|
|
# ignore them
|
|
$_ = '' if /CURLOPT_SSL_VERIFYPEER/
|
|
$_ = '' if /CURLOPT_SSH_KNOWNHOSTS/
|
|
</stripfile>
|
|
</verify>
|
|
</testcase>
|