Did you try capturing a verbose / traffic log for this?
Does it work when using curl from the command line?

Best,

Patrick

> Am 18.10.2025 um 20:11 schrieb SherwoodP via curl-library 
> <[email protected]>:
> 
> BACKGROUND:
> I am trying to use curl v8.6.0 on a Windows 11 system to send email to my 
> POP3 server (att.com). AT&T uses "secure mail keys" for authentication.
> 
> I can access AT&T's email web interface using a user name and password.
> I can also access the same account with Eudora, which requires a secure mail 
> key.
> 
> USING CURL:
> This is the curl C++20 code I am using to send a sample message:
> 
> curl = curl_easy_init();
> if (curl)
> {
> CURLcode code=curl_easy_setopt(curl, CURLOPT_URL, si .server);
> code=curl_easy_setopt(curl, CURLOPT_USE_SSL, (long ) CURLUSESSL_ALL );
> code = curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 0L); // Tell libcurl to 
> *not* verify the peer
> code = curl_easy_setopt(curl, CURLOPT_USERNAME, si .userName);
> code = curl_easy_setopt(curl, CURLOPT_PASSWORD, si .pw);
> code = curl_easy_setopt(curl, CURLOPT_MAIL_FROM, si .from);
> recipients = curl_slist_append(recipients, si .to);
> if (strlen( si .cc)) // cc: is optional
>     recipients = curl_slist_append(recipients, si .cc);
> code = curl_easy_setopt(curl, CURLOPT_MAIL_RCPT, recipients);
> code = curl_easy_setopt(curl, CURLOPT_READFUNCTION, payload_source);
> code = curl_easy_setopt(curl, CURLOPT_READDATA, &upload_ctx);
> code = curl_easy_setopt(curl, CURLOPT_VERBOSE, 1L);
> 
> /* send the message (including headers) */
> res = curl_easy_perform(curl);
> }
> 
> Structure si at the beginning of the code above contains
> si{
> server = "smtp://outbound.att.net:587"
> userName = "MyUserName"
> pw = "MySecureKey"
> t = "ToEmailAddr"
> from = "FromEmailAddr"
> cc = "<[email protected]>"
> messageID = "Communicate_000000006334"
> subject = "Communicate test email"
> nBodyLines = 10
> body
> [0] = "\tThe Germ"
> [1] = ""
> [2] = "A mighty creature is the germ,"
> [3] = "Though smaller than a pachyderm."
> [4] = "His customary dwelling place"
> [5] = "Is deep within the human race."
> [6] = "His childish pride he often pleases"
> [7] = "By giving people strange diseases."
> [8] = "Do you, my poppet, feel infirm?"
> [9] = "You probably contain a germ."
> };
> 
> Running this code gives res = CURLE_WEIRD_SERVER_REPLY (8) 
> "curl_easy_perform() failed: Weird server reply" if I use the AT&T secure key 
> as si.pw, and "Login denied" if I use the AT&T password.
> 
> To debug my usage of curl, I'd like to know what the "weird reply" is, or any 
> other logging that curl provides. If the curl code is wrong in any way, or 
> missing some detail of authentication, I'd appreciate advice on how to fix it.
> 
> For comparison, the email client Eudora can successfully send email to this 
> account. An excerpt from Eudora's debugging log is below. This shows that 
> Eudora has successfully logged in.
> 
> MAIN    16:14.54 Preparing messages to Send: 1
> MAIN    16:14.54 RSET
> MAIN    16:14.54 MAIL FROM:<FromEmailAddr>
> MAIN    16:14.54 RCPT TO:<ToEmailAddr>
> MAIN    16:14.54 DATA
> MAIN    16:14.54 Test message
> MAIN    16:14.54 Preparing messages to Send: 0
> 21296    16:14.54 Open 67.195.12.35:465
> 21296    32:14.54 Sent: " 16 03 01 00 F4 01 00 00 F0 03 03 C5 93 55 57 E6"
> ...
> 21296    64:14.54 Rcvd: " 16 03 03 13 2E 02 00"
> ...
> 21296    64:14.54 Rcvd: "220 smtp.mail.yahoo.com ESMTP ready\r\n"
> 21296    32:14.54 Sent: "EHLO MyComputerName.MyEmailDomain\r\n"
> 21296    64:14.54 Rcvd: "250-hermes--production-gq1-6b8576c5cf-gs5mr Hello 
> MyComputerName.MyEmailDomain [xx.xx.xx.xx])\r\n"
> 21296    64:14.54 Rcvd: "250-PIPELINING\r\n"
> 21296    64:14.54 Rcvd: "250-ENHANCEDSTATUSCODES\r\n"
> 21296    64:14.54 Rcvd: "250-8BITMIME\r\n"
> 21296    64:14.54 Rcvd: "250-SIZE 41697280\r\n"
> 21296    64:14.54 Rcvd: "250 AUTH PLAIN LOGIN XOAUTH2 OAUTHBEARER\r\n"
> 21296    32:14.54 Sent: "AUTH LOGIN\r\n"
> 21296    64:14.54 Rcvd: "334 xxxxxxxxxxxx\r\n"
> 21296    32:14.54 Sent: "xxxxxxxxxxxxxxxxxxxxxxxxxxxx\r\n"
> 21296    64:14.54 Rcvd: "334 xxxxxxxxxxxx\r\n"
> 21296    32:14.54 Sent: "xxxxxxxxxxxxxxxxxxxxxxxx\r\n"
> 21296    64:14.56 Rcvd: "235 2.7.0 Authentication successful\r\n"
> 21296    32:14.56 Sent: "RSET\r\n"
> 21296    64:14.56 Rcvd: "250 2.0.0 OK\r\n"
> 21296    32:14.56 Sent: "MAIL FROM:<FromEmailAddr>\r\n"
> 21296    64:14.56 Rcvd: "250 2.1.0 Sender <FromEmailAddr> OK\r\n"
> 21296    32:14.56 Sent: "RCPT TO:<ToEmailAddr>\r\n"
> 21296    64:14.56 Rcvd: "250 2.1.5 Recipient <ToEmailAddr> OK\r\n"
> 21296    32:14.56 Sent: "DATA\r\n"
> 21296    64:14.56 Rcvd: "354 Ok Send data ending with <CRLF>.<CRLF>\r\n"
> 21296    32:14.56 Sent: "X-Mailer: QUALCOMM Windows Eudora Version 
> 7.1.0.9\r\n"
> 21296    32:14.56 Sent: "Date: Sat, 18 Oct 2025 10:53:07 -0700\r\n"
> 21296    32:14.56 Sent: "To: ToEmailAddr\r\n"
> 21296    32:14.56 Sent: "From: FromEmailAddr\r\n"
> 21296    32:14.56 Sent: "Subject: Test message\r\n"
> 21296    32:14.56 Sent: "Mime-Version: 1.0\r\n"
> 21296    32:14.56 Sent: "Content-Type: text/plain; charset="us-ascii"; 
> format=flowed\r\n"
> 21296    32:14.56 Sent: "\r\n"
> 21296    32:14.56 Sent: "Body of message.\r\n"
> 21296    32:14.56 Sent: "\r\n"
> 21296    32:14.56 Sent: ".\r\n"
> 21296    64:14.57 Rcvd: "250 OK , completed\r\n"
> 21296    32:14.57 Sent: "QUIT\r\n"
> 21296    64:14.57 Rcvd: "221 Service Closing transmission\r\n"
> 
> 
> 
> 
> -- 
> Unsubscribe: https://lists.haxx.se/mailman/listinfo/curl-library
> Etiquette:   https://curl.se/mail/etiquette.html

-- 
Unsubscribe: https://lists.haxx.se/mailman/listinfo/curl-library
Etiquette:   https://curl.se/mail/etiquette.html

Reply via email to