curl/docs/libcurl/opts/CURLOPT_MAIL_RCPT.md
Daniel Stenberg e3fe020089
docs/libcurl: generate PROTOCOLS from meta-data
Remove the PROTOCOLS section from the source files completely and
instead generate them based on the header data in the curldown files.

It also generates TLS backend information for options marked for TLS as
protocol.

Closes #13175
2024-03-23 18:13:03 +01:00

2.0 KiB

c SPDX-License-Identifier Title Section Source See-also Protocol
Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al. curl CURLOPT_MAIL_RCPT 3 libcurl
CURLOPT_MAIL_AUTH (3)
CURLOPT_MAIL_FROM (3)
SMTP

NAME

CURLOPT_MAIL_RCPT - list of SMTP mail recipients

SYNOPSIS

#include <curl/curl.h>

CURLcode curl_easy_setopt(CURL *handle, CURLOPT_MAIL_RCPT,
                          struct curl_slist *rcpts);

DESCRIPTION

Pass a pointer to a linked list of recipients to pass to the server in your SMTP mail request. The linked list should be a fully valid list of struct curl_slist structs properly filled in. Use curl_slist_append(3) to create the list and curl_slist_free_all(3) to clean up an entire list.

When performing a mail transfer, each recipient should be specified within a pair of angled brackets (<>), however, should you not use an angled bracket as the first character libcurl assumes you provided a single email address and encloses that address within brackets for you.

When performing an address verification (VRFY command), each recipient should be specified as the username or username plus domain (as per Section 3.5 of RFC 5321).

When performing a mailing list expand (EXPN command), each recipient should be specified using the mailing list name, such as Friends or London-Office.

DEFAULT

NULL

EXAMPLE

int main(void)
{
  CURL *curl = curl_easy_init();
  if(curl) {
    CURLcode res;
    struct curl_slist *list;
    list = curl_slist_append(NULL, "root@localhost");
    list = curl_slist_append(list, "person@example.com");
    curl_easy_setopt(curl, CURLOPT_URL, "smtp://example.com/");
    curl_easy_setopt(curl, CURLOPT_MAIL_RCPT, list);
    res = curl_easy_perform(curl);
    curl_slist_free_all(list);
    curl_easy_cleanup(curl);
  }
}

AVAILABILITY

Added in 7.20.0. The VRFY and EXPN logic was added in 7.34.0

RETURN VALUE

Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.