-
- strcpy(try_this_mx, "smtp://");
- extract_token(&try_this_mx[7], mxes, i, '|', (sizeof try_this_mx - 7));
- curl_easy_setopt(curl, CURLOPT_URL, try_this_mx);
-
- syslog(LOG_DEBUG, "smtpclient: trying %s", try_this_mx); // send the message
+ // curl_easy_setopt(curl, CURLOPT_USE_SSL, CURLUSESSL_TRY); athos-mn
+ curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 0L);
+ curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, 0L);
+ // curl_easy_setopt(curl, CURLOPT_ERRORBUFFER, curl_error_buffer);
+
+ // Construct an SMTP URL in the form of:
+ // smtp[s]://target_host/source_host
+ // This looks weird but libcurl uses that last part to set our name for EHLO or HELO.
+ // We check for "smtp://" and "smtps://" because the admin may have put those prefixes in a smart-host entry.
+ // If there is no prefix we add "smtp://"
+ extract_token(try_this_mx, mxes, i, '|', (sizeof try_this_mx - 7));
+ snprintf(smtp_url, sizeof smtp_url,
+ "%s%s/%s",
+ (((!strncasecmp(try_this_mx, HKEY("smtp://"))) || (!strncasecmp(try_this_mx, HKEY("smtps://")))) ? "" : "smtp://"),
+ try_this_mx,
+ CtdlGetConfigStr("c_fqdn")
+ );
+ curl_easy_setopt(curl, CURLOPT_URL, smtp_url);
+ syslog(LOG_DEBUG, "smtpclient: trying %s", smtp_url); // send the message