1<testcase> 2# Based on test800 3<info> 4<keywords> 5IMAP 6Clear Text 7FETCH 8--libcurl 9</keywords> 10</info> 11 12# 13# Server-side 14<reply> 15<data> 16From: me@somewhere 17To: fake@nowhere 18 19body 20 21-- 22 yours sincerely 23</data> 24</reply> 25 26# 27# Client-side 28<client> 29<server> 30imap 31</server> 32<name> 33--libcurl for IMAP FETCH message 34</name> 35<setenv> 36SSL_CERT_FILE= 37</setenv> 38<command> 39'imap://%HOSTIP:%IMAPPORT/%TESTNUMBER/;MAILINDEX=1' -u user:secret --libcurl %LOGDIR/test%TESTNUMBER.c 40</command> 41# Need ftp so the FTP options are written in the --libcurl template 42<features> 43ftp 44</features> 45</client> 46 47# 48# Verify data after the test has been "shot" 49<verify> 50<protocol> 51A001 CAPABILITY 52A002 LOGIN user secret 53A003 SELECT %TESTNUMBER 54A004 FETCH 1 BODY[] 55A005 LOGOUT 56</protocol> 57<file name="%LOGDIR/test%TESTNUMBER.c" mode="text"> 58/********* Sample code generated by the curl command line tool ********** 59 * All curl_easy_setopt() options are documented at: 60 * https://curl.se/libcurl/c/curl_easy_setopt.html 61 ************************************************************************/ 62#include <curl/curl.h> 63 64int main(int argc, char *argv[]) 65{ 66 CURLcode ret; 67 CURL *hnd; 68 69 hnd = curl_easy_init(); 70 curl_easy_setopt(hnd, CURLOPT_BUFFERSIZE, 102400L); 71 curl_easy_setopt(hnd, CURLOPT_URL, "imap://%HOSTIP:%IMAPPORT/%TESTNUMBER/;MAILINDEX=1"); 72 curl_easy_setopt(hnd, CURLOPT_USERPWD, "user:secret"); 73 curl_easy_setopt(hnd, CURLOPT_VERBOSE, 1L); 74 curl_easy_setopt(hnd, CURLOPT_FTP_SKIP_PASV_IP, 1L); 75 curl_easy_setopt(hnd, CURLOPT_TCP_KEEPALIVE, 1L); 76 77 /* Here is a list of options the curl code used that cannot get generated 78 as source easily. You may choose to either not use them or implement 79 them yourself. 80 81 CURLOPT_WRITEDATA was set to an object pointer 82 CURLOPT_WRITEFUNCTION was set to a function pointer 83 CURLOPT_READDATA was set to an object pointer 84 CURLOPT_READFUNCTION was set to a function pointer 85 CURLOPT_SEEKDATA was set to an object pointer 86 CURLOPT_SEEKFUNCTION was set to a function pointer 87 CURLOPT_ERRORBUFFER was set to an object pointer 88 CURLOPT_STDERR was set to an object pointer 89 CURLOPT_DEBUGFUNCTION was set to a function pointer 90 CURLOPT_DEBUGDATA was set to an object pointer 91 CURLOPT_HEADERFUNCTION was set to a function pointer 92 CURLOPT_HEADERDATA was set to an object pointer 93 94 */ 95 96 ret = curl_easy_perform(hnd); 97 98 curl_easy_cleanup(hnd); 99 hnd = NULL; 100 101 return (int)ret; 102} 103/**** End of sample code ****/ 104</file> 105<stripfile> 106# These options vary with configurations - just ignore them 107# CURLOPT_INTERLEAVEDATA requires RTSP (HTTP) protocol 108$_ = '' if /CURLOPT_USERAGENT/ 109$_ = '' if /CURLOPT_MAXREDIRS/ 110$_ = '' if /CURLOPT_SSL_VERIFYPEER/ 111$_ = '' if /CURLOPT_SSH_KNOWNHOSTS/ 112$_ = '' if /CURLOPT_HTTP_VERSION/ 113$_ = '' if /CURLOPT_INTERLEAVEDATA/ 114</stripfile> 115</verify> 116</testcase> 117