1*6236dae4SAndroid Build Coastguard Worker--- 2*6236dae4SAndroid Build Coastguard Workerc: Copyright (C) Daniel Stenberg, <[email protected]>, et al. 3*6236dae4SAndroid Build Coastguard WorkerSPDX-License-Identifier: curl 4*6236dae4SAndroid Build Coastguard WorkerTitle: curl_mime_init 5*6236dae4SAndroid Build Coastguard WorkerSection: 3 6*6236dae4SAndroid Build Coastguard WorkerSource: libcurl 7*6236dae4SAndroid Build Coastguard WorkerSee-also: 8*6236dae4SAndroid Build Coastguard Worker - CURLOPT_MIMEPOST (3) 9*6236dae4SAndroid Build Coastguard Worker - curl_mime_addpart (3) 10*6236dae4SAndroid Build Coastguard Worker - curl_mime_free (3) 11*6236dae4SAndroid Build Coastguard Worker - curl_mime_subparts (3) 12*6236dae4SAndroid Build Coastguard WorkerProtocol: 13*6236dae4SAndroid Build Coastguard Worker - HTTP 14*6236dae4SAndroid Build Coastguard Worker - IMAP 15*6236dae4SAndroid Build Coastguard Worker - SMTP 16*6236dae4SAndroid Build Coastguard WorkerAdded-in: 7.56.0 17*6236dae4SAndroid Build Coastguard Worker--- 18*6236dae4SAndroid Build Coastguard Worker 19*6236dae4SAndroid Build Coastguard Worker# NAME 20*6236dae4SAndroid Build Coastguard Worker 21*6236dae4SAndroid Build Coastguard Workercurl_mime_init - create a mime handle 22*6236dae4SAndroid Build Coastguard Worker 23*6236dae4SAndroid Build Coastguard Worker# SYNOPSIS 24*6236dae4SAndroid Build Coastguard Worker 25*6236dae4SAndroid Build Coastguard Worker~~~c 26*6236dae4SAndroid Build Coastguard Worker#include <curl/curl.h> 27*6236dae4SAndroid Build Coastguard Worker 28*6236dae4SAndroid Build Coastguard Workercurl_mime *curl_mime_init(CURL *easy_handle); 29*6236dae4SAndroid Build Coastguard Worker~~~ 30*6236dae4SAndroid Build Coastguard Worker 31*6236dae4SAndroid Build Coastguard Worker# DESCRIPTION 32*6236dae4SAndroid Build Coastguard Worker 33*6236dae4SAndroid Build Coastguard Workercurl_mime_init(3) creates a handle to a new empty mime structure. 34*6236dae4SAndroid Build Coastguard WorkerThis mime structure can be subsequently filled using the mime API, then 35*6236dae4SAndroid Build Coastguard Workerattached to some easy handle using option CURLOPT_MIMEPOST(3) within 36*6236dae4SAndroid Build Coastguard Workera curl_easy_setopt(3) call or added as a multipart in another mime 37*6236dae4SAndroid Build Coastguard Workerhandle's part using curl_mime_subparts(3). 38*6236dae4SAndroid Build Coastguard Worker 39*6236dae4SAndroid Build Coastguard Worker*easy_handle* is used for part separator randomization and error 40*6236dae4SAndroid Build Coastguard Workerreporting. Since 7.87.0, it does not need to be the final target handle. 41*6236dae4SAndroid Build Coastguard Worker 42*6236dae4SAndroid Build Coastguard WorkerUsing a mime handle is the recommended way to post an HTTP form, format and 43*6236dae4SAndroid Build Coastguard Workersend a multi-part email with SMTP or upload such an email to an IMAP server. 44*6236dae4SAndroid Build Coastguard Worker 45*6236dae4SAndroid Build Coastguard Worker# %PROTOCOLS% 46*6236dae4SAndroid Build Coastguard Worker 47*6236dae4SAndroid Build Coastguard Worker# EXAMPLE 48*6236dae4SAndroid Build Coastguard Worker 49*6236dae4SAndroid Build Coastguard Worker~~~c 50*6236dae4SAndroid Build Coastguard Workerint main(void) 51*6236dae4SAndroid Build Coastguard Worker{ 52*6236dae4SAndroid Build Coastguard Worker CURL *easy = curl_easy_init(); 53*6236dae4SAndroid Build Coastguard Worker curl_mime *mime; 54*6236dae4SAndroid Build Coastguard Worker curl_mimepart *part; 55*6236dae4SAndroid Build Coastguard Worker 56*6236dae4SAndroid Build Coastguard Worker /* Build an HTTP form with a single field named "data", */ 57*6236dae4SAndroid Build Coastguard Worker mime = curl_mime_init(easy); 58*6236dae4SAndroid Build Coastguard Worker part = curl_mime_addpart(mime); 59*6236dae4SAndroid Build Coastguard Worker curl_mime_data(part, "This is the field data", CURL_ZERO_TERMINATED); 60*6236dae4SAndroid Build Coastguard Worker curl_mime_name(part, "data"); 61*6236dae4SAndroid Build Coastguard Worker 62*6236dae4SAndroid Build Coastguard Worker /* Post and send it. */ 63*6236dae4SAndroid Build Coastguard Worker curl_easy_setopt(easy, CURLOPT_MIMEPOST, mime); 64*6236dae4SAndroid Build Coastguard Worker curl_easy_setopt(easy, CURLOPT_URL, "https://example.com"); 65*6236dae4SAndroid Build Coastguard Worker curl_easy_perform(easy); 66*6236dae4SAndroid Build Coastguard Worker 67*6236dae4SAndroid Build Coastguard Worker /* Clean-up. */ 68*6236dae4SAndroid Build Coastguard Worker curl_easy_cleanup(easy); 69*6236dae4SAndroid Build Coastguard Worker curl_mime_free(mime); 70*6236dae4SAndroid Build Coastguard Worker} 71*6236dae4SAndroid Build Coastguard Worker~~~ 72*6236dae4SAndroid Build Coastguard Worker 73*6236dae4SAndroid Build Coastguard Worker# %AVAILABILITY% 74*6236dae4SAndroid Build Coastguard Worker 75*6236dae4SAndroid Build Coastguard Worker# RETURN VALUE 76*6236dae4SAndroid Build Coastguard Worker 77*6236dae4SAndroid Build Coastguard WorkerA mime struct handle, or NULL upon failure. 78