manpagez: man pages & more
man CURLOPT_UPLOAD_FLAGS(3)
Home | html | info | man
CURLOPT_UPLOAD_FLAGS(3)    Library Functions Manual    CURLOPT_UPLOAD_FLAGS(3)


NAME

       CURLOPT_UPLOAD_FLAGS - upload flags for IMAP


SYNOPSIS

       #include <curl/curl.h>

       CURLcode curl_easy_setopt(CURL *handle, CURLOPT_UPLOAD_FLAGS, long bitmask);


DESCRIPTION

       Pass a long as parameter, which is set to a bitmask, to tell libcurl
       which flags to send the server relating to uploaded files. The current
       supported flags are CURLULFLAG_ANSWERED, which sets the Answered flag
       for IMAP uploads, CURLULFLAG_DELETED, which sets the Deleted flag for
       IMAP uploads, CURLULFLAG_DRAFT, which sets the Draft flag for IMAP
       uploads, CURLULFLAG_FLAGGED, which sets the Flagged flag for IMAP
       uploads, and CURLULFLAG_SEEN, which sets the Seen flag for IMAP
       uploads.


DEFAULT

       A bitmask with only the CURLULFLAG_SEEN flag set.


PROTOCOLS

       This functionality affects imap and imaps


EXAMPLE

       static size_t read_cb(char *ptr, size_t size, size_t nmemb, void *userdata)
       {
         FILE *src = userdata;
         /* copy as much data as possible into the 'ptr' buffer, but no more than
            'size' * 'nmemb' bytes */
         size_t retcode = fread(ptr, size, nmemb, src);

         return retcode;
       }

       int main(void)
       {
         CURL *curl = curl_easy_init();
         if(curl) {
           FILE *src = fopen("local-file", "r");
           curl_off_t fsize; /* set this to the size of the input file */

           /* we want to use our own read function */
           curl_easy_setopt(curl, CURLOPT_READFUNCTION, read_cb);

           /* enable uploading */
           curl_easy_setopt(curl, CURLOPT_UPLOAD, 1L);

           /* specify target */
           curl_easy_setopt(curl, CURLOPT_URL, "imap://example.com:993/mailbox");

           /* provide username */
           curl_easy_setopt(curl, CURLOPT_USERNAME, "user@example.com");

           /* provide password */
           curl_easy_setopt(curl, CURLOPT_PASSWORD, "password");

           /* specify that uploaded mail should be considered flagged */
           curl_easy_setopt(curl, CURLOPT_UPLOAD_FLAGS, CURLULFLAG_FLAGGED);

           /* now specify which pointer to pass to our callback */
           curl_easy_setopt(curl, CURLOPT_READDATA, src);

           /* Set the size of the file to upload */
           curl_easy_setopt(curl, CURLOPT_INFILESIZE_LARGE, (curl_off_t)fsize);

           /* perform the upload */
           curl_easy_perform(curl);
         }
       }


AVAILABILITY

       Added in curl 8.13.0


RETURN VALUE

       curl_easy_setopt(3) returns a CURLcode indicating success or error.

       CURLE_OK (0) means everything was OK, non-zero means an error occurred,
       see libcurl-errors(3).


SEE ALSO

       CURLOPT_UPLOAD(3)

libcurl                           2025-04-16           CURLOPT_UPLOAD_FLAGS(3)

curl 8.13.0 - Generated Wed May 7 16:28:42 CDT 2025
© manpagez.com 2000-2025
Individual documents may contain additional copyright information.