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  cur-
       rently supported	flags are:

       CURLULFLAG_ANSWERED
	      Sets the Answered	flag for IMAP uploads. Indicates that the mes-
	      sage has been replied to.

       CURLULFLAG_DELETED
	      Sets  the	 Deleted  flag for IMAP	uploads. Marks the message for
	      deletion rather than immediately removing	it.

       CURLULFLAG_DRAFT
	      Sets the Draft flag for IMAP uploads. Marks the  message	as  an
	      uncompleted composition.

       CURLULFLAG_FLAGGED
	      Sets  the	 Flagged  flag for IMAP	uploads. Marks the message for
	      special attention.

       CURLULFLAG_SEEN
	      Sets the Seen flag for IMAP uploads. Marks the message as	read.

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;
	 FILE *src = fopen("local-file", "r");
	 if(!src)
	   return 1;

	 curl =	curl_easy_init();
	 if(curl) {
	   CURLcode result;
	   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 */
	   result = curl_easy_perform(curl);
	   curl_easy_cleanup(curl);
	 }
	 fclose(src);
       }

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				  2026-06-11	       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+15.1.quarterly>

home | help