131 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
			
		
		
	
	
			131 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
| <testcase>
 | |
| # Based on test900
 | |
| # 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>
 | |
| --libcurl for SMTP
 | |
|  </name>
 | |
| <setenv>
 | |
| SSL_CERT_FILE=
 | |
| </setenv>
 | |
| <file name="log/test%TESTNUMBER.eml">
 | |
| From: different
 | |
| To: another
 | |
| 
 | |
| body
 | |
| </file>
 | |
|  <command>
 | |
| smtp://%HOSTIP:%SMTPPORT/%TESTNUMBER --mail-rcpt recipient.one@example.com --mail-rcpt recipient.two@example.com --mail-from sender@example.com -T log/test%TESTNUMBER.eml --libcurl log/test%TESTNUMBER.c
 | |
| </command>
 | |
| </client>
 | |
| 
 | |
| #
 | |
| # Verify data after the test has been "shot"
 | |
| <verify>
 | |
| <protocol>
 | |
| EHLO %TESTNUMBER
 | |
| MAIL FROM:<sender@example.com> SIZE=38
 | |
| RCPT TO:<recipient.one@example.com>
 | |
| RCPT TO:<recipient.two@example.com>
 | |
| DATA
 | |
| QUIT
 | |
| </protocol>
 | |
| <upload>
 | |
| From: different
 | |
| To: another
 | |
| 
 | |
| body
 | |
| .
 | |
| </upload>
 | |
| <file name="log/test%TESTNUMBER.c" mode="text">
 | |
| /********* Sample code generated by the curl command line tool **********
 | |
|  * All curl_easy_setopt() options are documented at:
 | |
|  * https://curl.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, "recipient.one@example.com");
 | |
|   slist1 = curl_slist_append(slist1, "recipient.two@example.com");
 | |
| 
 | |
|   hnd = curl_easy_init();
 | |
|   curl_easy_setopt(hnd, CURLOPT_BUFFERSIZE, 102400L);
 | |
|   curl_easy_setopt(hnd, CURLOPT_URL, "smtp://%HOSTIP:%SMTPPORT/%TESTNUMBER");
 | |
|   curl_easy_setopt(hnd, CURLOPT_UPLOAD, 1L);
 | |
|   curl_easy_setopt(hnd, CURLOPT_VERBOSE, 1L);
 | |
|   curl_easy_setopt(hnd, CURLOPT_FTP_SKIP_PASV_IP, 1L);
 | |
|   curl_easy_setopt(hnd, CURLOPT_TCP_KEEPALIVE, 1L);
 | |
|   curl_easy_setopt(hnd, CURLOPT_MAIL_FROM, "sender@example.com");
 | |
|   curl_easy_setopt(hnd, CURLOPT_MAIL_RCPT, slist1);
 | |
|   curl_easy_setopt(hnd, CURLOPT_INFILESIZE_LARGE, (curl_off_t)38);
 | |
| 
 | |
|   /* Here is a list of options the curl code used that cannot get generated
 | |
|      as source easily. You may choose 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>
 | |
| # These options vary with configurations - just ignore them
 | |
| # CURLOPT_INTERLEAVEDATA requires RTSP (HTTP) protocol
 | |
| $_ = '' if /CURLOPT_USERAGENT/
 | |
| $_ = '' if /CURLOPT_MAXREDIRS/
 | |
| $_ = '' if /CURLOPT_SSL_VERIFYPEER/
 | |
| $_ = '' if /CURLOPT_SSH_KNOWNHOSTS/
 | |
| $_ = '' if /CURLOPT_HTTP_VERSION/
 | |
| $_ = '' if /CURLOPT_HTTP09_ALLOWED/
 | |
| $_ = '' if /CURLOPT_INTERLEAVEDATA/
 | |
| </stripfile>
 | |
| </verify>
 | |
| </testcase>
 |