CURLOPT_MA...ALLOWFAILS(3)
π NAME π
Okay so this is the CURLOPT_MA...ALLOWFAILS(3) page from the libcurl manual, bestie, and it's all about CURLOPT_MAIL_RCPT_ALLOWFAILS β the option that lets the RCPT TO command fail for some recipients. π
β¨ SYNOPSIS β¨
#include <curl/curl.h>
CURLcode curl_easy_setopt(CURL *handle, CURLOPT_MAIL_RCPT_ALLOWFAILS,
long allow);
π¦ DESCRIPTION π¦
If allow is set to 1L, it allows the RCPT TO command to fail for some recipients. No cap.
When you're sending data to multiple recipients, by default curl aborts the SMTP conversation if either one of the recipients causes the RCPT TO command to return an error. Like, one bad email and the whole thing says "nope, we're done here" π.
The default behavior can be changed by setting allow to 1L, which makes libcurl ignore errors for individual recipients and proceed with the remaining accepted recipients. It's giving "we don't need that one anyway, keep the party going" β¨.
If all recipients trigger RCPT TO failures and this flag is specified, curl aborts the SMTP conversation and returns the error received from to the last RCPT TO command. So yeah, if literally everyone fails, it's still a wrap π.
π DEFAULT π
0
π PROTOCOLS π
This functionality affects smtp only. SMTP girlies only, periodt.
π EXAMPLE π
int main(void)
{
CURL *curl = curl_easy_init();
if(curl) {
struct curl_slist *list;
CURLcode result;
/* Adding one valid and one invalid email address */
list = curl_slist_append(NULL, "person@example.com");
list = curl_slist_append(list, "invalidemailaddress");
curl_easy_setopt(curl, CURLOPT_URL, "smtp://example.com/");
curl_easy_setopt(curl, CURLOPT_MAIL_RCPT_ALLOWFAILS, 1L);
result = curl_easy_perform(curl);
curl_slist_free_all(list);
curl_easy_cleanup(curl);
}
}
π§ HISTORY π§
This option was called CURLOPT_MAIL_RCPT_ALLLOWFAILS (with three instead of two letter L) before 8.2.0. Yes, bestie, the old spelling really said "ALLLOW" β iconic typo energy π.
β AVAILABILITY β
Added in curl 8.2.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). Lowkey important: check your return codes, bestie π«Ά.
π SEE ALSO π
That's the whole page, bestie π β brought to you by libcurl, dated 2026-10-12, and filed under the manual name CURLOPT_MA...ALLOWFAILS(3). Slay, and happy SMTP-ing πβ¨
π¦ where this page comes from
- fedora 44: libcurl-devel 8.18.0-14.fc44 Β· curl
- fedora 44: libcurl-devel 8.18.0-14.fc44 Β· curl
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms