2013-08-08 2 views
0

У меня проблема с подключением MailCore2 (iOS) к smtp.live.com SMTP-сервер.
Там, где не проблемы при подключении к pop3.live.com, smtp.gmail.com или smtp.mail.yahoo.com.MailCore SMTP Неверный сертификат сервера

Вот настройки

[_sessionSMTP setHostname:@"smtp.live.com"]; 
[_sessionSMTP setUsername:@"[email protected]"]; 
[_sessionSMTP setPassword:@"MyTestPassword1"]; 
[_sessionSMTP setPort:587]; 
[_sessionSMTP setConnectionType:MCOConnectionTypeStartTLS]; 
[_sessionSMTP setAuthType:MCOAuthTypeSASLPlain]; 
[_sessionSMTP setUseHeloIPEnabled:YES]; 

MCOSMTPOperation *op = [_sessionSMTP checkAccountOperationWithFrom: 
         [MCOAddress addressWithMailbox:@"[email protected]"]]; 
    [op start:^(NSError *error) { 
     NSLog(@"error = %@",error); 
    }]; 

Я постоянно получаю:

Error Domain=MCOErrorDomain Code=4 "The certificate for this server is invalid." 

Существуют ли какие-либо специальные требования для Live Mail? Я знаю, что MailCore может использовать SMTP-сервер Live, поскольку Sparrow делает это.

С наилучшими пожеланиями,
Джон

ответ

0

Вы можете использовать OpenSSL для подключения к smtp.live.com:587, продолжить SMTP, выпуск STARTTLS, а также просмотреть цепочку сертификатов: openssl s_client -starttls smtp -crlf -connect smtp.live.com:587 Цепочка сертификатов выглядит хорошо для меня :. Похоже, что сертификат, который они используют, подписан GlobalSign. Мне интересно, есть ли в MailCore параметр, который должен указывать, что GlobalSign является доверенным ЦС.

1

попробуйте установить checkCertificateEnabled на NO: [_sessionSMTP checkCertificateEnabled: NO];

Из MailCore документы:

checkCertificateEnabled

Если установлено значение ДА, то соединение не будет, если сертификат неверен.