dwww Home | Manual pages | Find package

curl_mime_subparts(3)       Library Functions Manual      curl_mime_subparts(3)

NAME
       curl_mime_subparts - set sub-parts of a multipart mime part

SYNOPSIS
       #include <curl/curl.h>

       CURLcode curl_mime_subparts(curl_mimepart *part, curl_mime *subparts);

DESCRIPTION
       curl_mime_subparts(3)  sets  a multipart mime part's content from a mime
       structure.

       part is a handle to the multipart part.

       subparts is  a  mime  structure  handle  holding  the  sub-parts.  After
       curl_mime_subparts(3) succeeds, the mime structure handle belongs to the
       multipart  part  and must not be freed explicitly. It may however be up-
       dated by subsequent calls to mime API functions.

       Setting a part's contents multiple times is valid: only the value set by
       the last call is retained. It is possible to  unassign  previous  part's
       contents by setting subparts to NULL.

PROTOCOLS
       This functionality affects http, imap and smtp

EXAMPLE
       static char *inline_html = "<title>example</title>";
       static char *inline_text = "once upon the time";

       int main(void)
       {
         CURL *curl = curl_easy_init();
         if(curl) {
           struct curl_slist *slist;

           /* The inline part is an alternative proposing the html and the text
              versions of the email. */
           curl_mime *alt = curl_mime_init(curl);
           curl_mimepart *part;

           /* HTML message. */
           part = curl_mime_addpart(alt);
           curl_mime_data(part, inline_html, CURL_ZERO_TERMINATED);
           curl_mime_type(part, "text/html");

           /* Text message. */
           part = curl_mime_addpart(alt);
           curl_mime_data(part, inline_text, CURL_ZERO_TERMINATED);

           /* Create the inline part. */
           part = curl_mime_addpart(alt);
           curl_mime_subparts(part, alt);
           curl_mime_type(part, "multipart/alternative");
           slist = curl_slist_append(NULL, "Content-Disposition: inline");
           curl_mime_headers(part, slist, 1);
         }
       }

AVAILABILITY
       Added in curl 7.56.0

RETURN VALUE
       This function returns a CURLcode indicating success or error.

       CURLE_OK  (0) means everything was OK, non-zero means an error occurred,
       see  libcurl-errors(3).   If   CURLOPT_ERRORBUFFER(3)   was   set   with
       curl_easy_setopt(3)  there  can  be an error message stored in the error
       buffer when non-zero is returned.

SEE ALSO
       curl_mime_addpart(3), curl_mime_init(3)

libcurl                            2026-07-12             curl_mime_subparts(3)

Generated by dwww version 1.16 on Sat Oct 3 05:07:35 CEST 2026.