У нас есть приложение, которое отправляет уведомление по электронной почте через сервер обмена. Прямо сейчас, если обмен настроен на шифрование SSL или TLS, мы можем отправлять почту. Если обмен не настроен для какого-либо шифрования, приложение не может отправить почту. Вопрос в том
Мы использовали 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);
Пожалуйста, дайте мне знать, что нам здесь не хватает.
если мы добавим CURLOPT_USE_SSL с CURLUSESSL_NONE, как показано ниже, это работает.
if(<condition to mark that mail is using no encryption>)
curl_easy_setopt(curl, CURLOPT_USE_SSL, CURLUSESSL_NONE);
Других решений пока нет …