manpagez: man pages & more
man curl_mime_subparts(3)
Home | html | info | man
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
       updated 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                           2025-02-08             curl_mime_subparts(3)

curl 8.12.0 - Generated Wed Feb 19 14:19:37 CST 2025
© manpagez.com 2000-2025
Individual documents may contain additional copyright information.