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