MailCore SMTP无效的服务器证书

时间:2013-08-08 09:34:35

标签: iphone ios objective-c smtp mailcore

我遇到与 smtp.live.com SMTP服务器的MailCore2(iOS)连接问题。
连接到 pop3.live.com smtp.gmail.com smtp.mail.yahoo.com 时没有问题。

以下是设置

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

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

我经常得到:

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

Live Mail有什么特殊要求吗?我知道MailCore可以使用Live的SMTP服务器,因为Sparrow正在这样做。

亲切的问候,
约翰

2 个答案:

答案 0 :(得分:1)

尝试将checkCertificateEnabled设置为NO:     [_sessionSMTP checkCertificateEnabled:NO];

来自MailCore文档:

  

checkCertificateEnabled

     

设置为YES时,如果证书不正确,连接将失败。

答案 1 :(得分:0)

您可以使用openssl连接到smtp.live.com:587,继续使用SMTP,发出STARTTLS,然后查看证书链:openssl s_client -starttls smtp -crlf -connect smtp.live.com:587证书链对我来说很好:。看起来他们使用的证书是由GlobalSign签署的。我想知道是否需要在MailCore中进行设置以指定GlobalSign是受信任的CA.