GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
CURLOPT_UPLOAD_FLAGS(3) FreeBSD Library Functions Manual CURLOPT_UPLOAD_FLAGS(3)

CURLOPT_UPLOAD_FLAGS - upload flags for IMAP

#include <curl/curl.h>
CURLcode curl_easy_setopt(CURL *handle, CURLOPT_UPLOAD_FLAGS, long bitmask);

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.

A bitmask with only the CURLULFLAG_SEEN flag set.

This functionality affects imap and imaps

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 = 9876; /* 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);
} }

Added in curl 8.13.0

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).

CURLOPT_UPLOAD(3)

2025-07-03 libcurl

Search for    or go to Top of page |  Section 3 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.