libcurl是否支持在没有任何加密的情况下发送电子邮件?

时间:2018-02-23 06:03:35

标签: c++ ssl smtp libcurl starttls

我们有一个通过交换服务器发送通知邮件的应用程序。现在,如果为SSL或TLS加密配置了Exchange,我们就可以发送邮件。如果没有为任何加密配置exchange,则应用程序无法发送邮件。问题是

  1. Libcurl是否支持在不加密的情况下发送电子邮件?
  2. 我们使用的是Wireshark,发现它使用StartTLS发送邮件。 以下是我们用来发送邮件的代码段:

    curl_easy_setopt(curl, CURLOPT_URL, "smtp.url.com:25");
    curl_easy_setopt(curl, CURLOPT_LOGIN_OPTIONS, "AUTH=NTML PLAIN");
    curl_easy_setopt(curl, CURLOPT_USERPWD, "user:password");
    curl_easy_setopt(curl, CURLOPT_MAIL_FROM, FROM_ADDR);
    recipients = curl_slist_append(recipients, TO_ADDR);
    curl_easy_setopt(curl, CURLOPT_MAIL_RCPT, recipients);
    curl_easy_setopt(curl, CURLOPT_READFUNCTION, payload_source);
    curl_easy_setopt(curl, CURLOPT_READDATA, &upload_ctx);
    curl_easy_setopt(curl, CURLOPT_UPLOAD, 1L);
    curl_easy_setopt(curl, CURLOPT_VERBOSE, 1L);
    res = curl_easy_perform(curl);
    

    请告诉我们这里缺少什么。

1 个答案:

答案 0 :(得分:0)

如果我们使用CURLUSESSL_NONE添加CURLOPT_USE_SSL,如下所示,则可行。

if(<condition to mark that mail is using no encryption>)
curl_easy_setopt(curl, CURLOPT_USE_SSL, CURLUSESSL_NONE);