Home | History | Annotate | Download | only in data
      1 <testcase>
      2 # Based on test900
      3 # N.B. --libcurl output not sufficient to deal with uploaded files.
      4 <info>
      5 <keywords>
      6 SMTP
      7 --libcurl
      8 </keywords>
      9 </info>
     10 
     11 #
     12 # Server-side
     13 <reply>
     14 <servercmd>
     15 CAPA SIZE
     16 </servercmd>
     17 </reply>
     18 
     19 #
     20 # Client-side
     21 <client>
     22 <server>
     23 smtp
     24 </server>
     25  <name>
     26 --libcurl for SMTP
     27  </name>
     28 <file name="log/test1406.eml">
     29 From: different
     30 To: another
     31 
     32 body
     33 </file>
     34  <command>
     35 smtp://%HOSTIP:%SMTPPORT/1406 --mail-rcpt recipient.one (a] example.com --mail-rcpt recipient.two (a] example.com --mail-from sender (a] example.com -T log/test1406.eml --libcurl log/test1406.c
     36 </command>
     37 </client>
     38 
     39 #
     40 # Verify data after the test has been "shot"
     41 <verify>
     42 <protocol>
     43 EHLO 1406
     44 MAIL FROM:<sender (a] example.com> SIZE=38
     45 RCPT TO:<recipient.one (a] example.com>
     46 RCPT TO:<recipient.two (a] example.com>
     47 DATA
     48 QUIT
     49 </protocol>
     50 <upload>
     51 From: different
     52 To: another
     53 
     54 body
     55 .
     56 </upload>
     57 <file name="log/test1406.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.haxx.se/libcurl/c/curl_easy_setopt.html
     61  ************************************************************************/
     62 #include <curl/curl.h>
     63 
     64 int main(int argc, char *argv[])
     65 {
     66   CURLcode ret;
     67   CURL *hnd;
     68   struct curl_slist *slist1;
     69 
     70   slist1 = NULL;
     71   slist1 = curl_slist_append(slist1, "recipient.one (a] example.com");
     72   slist1 = curl_slist_append(slist1, "recipient.two (a] example.com");
     73 
     74   hnd = curl_easy_init();
     75   curl_easy_setopt(hnd, CURLOPT_INFILESIZE_LARGE, (curl_off_t)38);
     76   curl_easy_setopt(hnd, CURLOPT_URL, "smtp://%HOSTIP:%SMTPPORT/1406");
     77   curl_easy_setopt(hnd, CURLOPT_HEADER, 1L);
     78   curl_easy_setopt(hnd, CURLOPT_UPLOAD, 1L);
     79   curl_easy_setopt(hnd, CURLOPT_USERAGENT, "stripped");
     80   curl_easy_setopt(hnd, CURLOPT_MAXREDIRS, 50L);
     81   curl_easy_setopt(hnd, CURLOPT_VERBOSE, 1L);
     82   curl_easy_setopt(hnd, CURLOPT_TCP_KEEPALIVE, 1L);
     83   curl_easy_setopt(hnd, CURLOPT_MAIL_FROM, "sender (a] example.com");
     84   curl_easy_setopt(hnd, CURLOPT_MAIL_RCPT, slist1);
     85 
     86   /* Here is a list of options the curl code used that cannot get generated
     87      as source easily. You may select to either not use them or implement
     88      them yourself.
     89 
     90   CURLOPT_WRITEDATA set to a objectpointer
     91   CURLOPT_WRITEFUNCTION set to a functionpointer
     92   CURLOPT_READDATA set to a objectpointer
     93   CURLOPT_READFUNCTION set to a functionpointer
     94   CURLOPT_SEEKDATA set to a objectpointer
     95   CURLOPT_SEEKFUNCTION set to a functionpointer
     96   CURLOPT_ERRORBUFFER set to a objectpointer
     97   CURLOPT_STDERR set to a objectpointer
     98   CURLOPT_DEBUGFUNCTION set to a functionpointer
     99   CURLOPT_DEBUGDATA set to a objectpointer
    100   CURLOPT_HEADERFUNCTION set to a functionpointer
    101   CURLOPT_HEADERDATA set to a objectpointer
    102 
    103   */
    104 
    105   ret = curl_easy_perform(hnd);
    106 
    107   curl_easy_cleanup(hnd);
    108   hnd = NULL;
    109   curl_slist_free_all(slist1);
    110   slist1 = NULL;
    111 
    112   return (int)ret;
    113 }
    114 /**** End of sample code ****/
    115 </file>
    116 <stripfile>
    117 # curl's default user-agent varies with version, libraries etc.
    118 s/(USERAGENT, \")[^\"]+/${1}stripped/
    119 # CURLOPT_SSL_VERIFYPEER, SSH_KNOWNHOSTS and HTTP_VERSION vary with
    120 # configurations - just ignore them
    121 $_ = '' if /CURLOPT_SSL_VERIFYPEER/
    122 $_ = '' if /CURLOPT_SSH_KNOWNHOSTS/
    123 $_ = '' if /CURLOPT_HTTP_VERSION/
    124 </stripfile>
    125 </verify>
    126 </testcase>
    127