есть ли какая-нибудь хитрость для отправки почты с CDO через порт 587 (порт использует протокол безопасности TLS). Это мой код на C ++:
CDO::IMessagePtr iMsg(__uuidof(CDO::Message));
CDO::IConfigurationPtr iConf = iMsg->GetConfiguration();
CDO::FieldsPtr iFields;
_bstr_t empty("");
iConf->Load(CDO::cdoIIS,empty); // this string constant from import
iFields = iConf->Fields;
iFields->Item["https://schemas.microsoft.com/cdo/configuration/smtpserver"]->Value = _variant_t(szServer);
iFields->Item["https://schemas.microsoft.com/cdo/configuration/smtpserverport"]->Value = _variant_t(587);
iFields->Item["https//schemas.microsoft.com/cdo/configuration/sendusing"]->Value = 2;
iFields->Item["https//schemas.microsoft.com/cdo/configuration/smtpauthenticate"]->Value = _variant_t(1); // Basic
iFields->Item["https//schemas.microsoft.com/cdo/configuration/sendusername"]->Value = _variant_t(szUser);
iFields->Item["https//schemas.microsoft.com/cdo/configuration/sendpassword"]->Value = _variant_t(szPassword);
if(iUseSSLTLS == 2)
iFields->Item["https//schemas.microsoft.com/cdo/configuration/sendtls"]->Value = _variant_t(true);
else
iFields->Item["https//schemas.microsoft.com/cdo/configuration/smtpusessl"]->Value = _variant_t(true);
iFields-> Обновить ();
и т.д … и т.д …
Если я использую этот код с stmp.gmail.com:
Я получаю следующий ответ:
(извините … часть сообщения написана на итальянском языке, но посмотрите на полужирный / курсив)
Очевидно, что если я настраиваю Outlook 2010, используя те же параметры, он работает отлично. Еще одна вещь, если я использую порт 465 и SSL:
код работает нормально, но мне нужно настроить порт 587 и TLS.
В конце концов я попробовал smtpusessl и sendtls вместе, установив их в true:
iFields->Item["https//schemas.microsoft.com/cdo/configuration/sendtls"]->Value = _variant_t(true);
iFields->Item["https//schemas.microsoft.com/cdo/configuration/smtpusessl"]->Value = _variant_t(true);
и я получаю следующую ошибку:
Благодарю.
Задача ещё не решена.
Других решений пока нет …