Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
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 up-
       loads, CURLULFLAG_FLAGGED, which	sets the Flagged  flag	for  IMAP  up-
       loads, 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 = 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);
	 }
       }

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-06-03	       CURLOPT_UPLOAD_FLAGS(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=CURLOPT_UPLOAD_FLAGS&sektion=3&manpath=FreeBSD+Ports+14.3.quarterly>

home | help