curl_mime_init(3)

curl_mime_init3

Create a mime handle

Usage

#include <curl/curl.h>
curl_mime *curl_mime_init(CURL *easy_handle);

Overview

curl_mime_init(3) creates a handle to a new empty mime structure. This mime structure can be subsequently filled using the mime API, then attached to some easy handle using option CURLOPT_MIMEPOST(3) within a curl_easy_setopt(3) call or added as a multipart in another mime handle's part using curl_mime_subparts(3).

easy_handle is used for part separator randomization and error reporting. Since 7.87.0, it does not need to be the final target handle.

Using a mime handle is the recommended way to post an HTTP form, format and send a multi-part email with SMTP or upload such an email to an IMAP server.

Examples

int main(void)
{
  CURL *easy = curl_easy_init();
  curl_mime *mime;
  curl_mimepart *part;
  /* Build an HTTP form with a single field named "data", */
  mime = curl_mime_init(easy);
  part = curl_mime_addpart(mime);
  curl_mime_data(part, "This is the field data", CURL_ZERO_TERMINATED);
  curl_mime_name(part, "data");
  /* Post and send it. */
  curl_easy_setopt(easy, CURLOPT_MIMEPOST, mime);
  curl_easy_setopt(easy, CURLOPT_URL, "https://example.com");
  curl_easy_perform(easy);
  /* Clean-up. */
  curl_easy_cleanup(easy);
  curl_mime_free(mime);
}

Return value

A mime struct handle, or NULL upon failure.

Releases

32 releases since macOS 12.0.1; the text changed 9 times.

  1. 12.0.1–12.2
  2. 12.3–12.5
  3. 13.0
  4. 13.1
  5. 13.2
  6. 13.3
  7. 13.4
  8. 13.5–14.1
  9. 14.2–14.4
  10. 14.5–26.5

Availability

As long as at least one of HTTP, SMTP or IMAP is enabled. Added in 7.56.0.

From curl 166.0.0.0.1 in macOS 26.5. Parsed by carta from the page's man source.