我们有一个通过交换服务器发送通知邮件的应用程序。现在,如果为SSL或TLS加密配置了Exchange,我们就可以发送邮件。如果没有为任何加密配置exchange,则应用程序无法发送邮件。问题是
我们使用的是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);
请告诉我们这里缺少什么。
答案 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);