Swift: Получение ошибки Не удалось установить стабильное соединение с сервером.

Я пытался использовать Mailcore2 со Swift в проекте iOS.

session.hostname = ""
session.port = 993
session.authType = MCOAuthType.XOAuth2
session.connectionType = MCOConnectionType.TLS
session.checkCertificateEnabled = false
session.username = ""
session.password = ""
var requestKind: MCOIMAPMessagesRequestKind = MCOIMAPMessagesRequestKind.Headers
var folder: String = "INBOX"
var uids: MCOIndexSet = MCOIndexSet(range: MCORangeMake(1, UINT64_MAX))
var fetchOperation: MCOIMAPFetchMessagesOperation = session.fetchMessagesOperationWithFolder(folder, requestKind: requestKind, uids: uids)
fetchOperation.start({(error: NSError?, fetchedMessages: [AnyObject]?, vanishedMessages: MCOIndexSet?) -> Void in
    if error != nil {
        print("Error downloading message headers:\(error!)")
    }
    //And, let's print out the messages...
    print("The post man delivereth:\(fetchedMessages)")
})

Это код, который я пытался использовать, это код, который был предоставлен на странице MailCore2. Я тестировал Gmail, Yahoo Mail и Mail.com, и все три не работали. Я получаю следующую ошибку:

CFNetwork SSLHandshake failed (-9806)
Error downloading message headers:Error Domain=MCOErrorDomain Code=1 "A stable connection to the server could not be established." UserInfo={NSLocalizedDescription=A stable connection to the server could not be established.}

person Danny M    schedule 15.08.2016    source источник
comment
вам нужно настроить имя хоста session.hostname = ""   -  person Reinier Melian    schedule 15.08.2016
comment
Какое бесполезное сообщение об ошибке из этой библиотеки. :(   -  person Max    schedule 15.08.2016
comment
@ReinierMelian У меня было имя хоста, я просто стер его в сообщении.   -  person Danny M    schedule 15.08.2016
comment
SSLHandshake может означать, что не удалось установить соединение. Какие имена хостов вы используете? Вы абсолютно уверены, что на пути нет брандмауэра?   -  person Max    schedule 15.08.2016
comment
Возможно, вы находитесь в сети, которая не пропускает ваш запрос.   -  person Dinh Viêt Hoà    schedule 18.08.2016
comment
@DinhViêtHoà Я не думаю, что это так, у меня также была эта проблема, когда я пытался запустить ее на своем iPhone.   -  person Danny M    schedule 22.08.2016


Ответы (1)


Не могу найти ссылку, где я это видел, но session.authType можно смело удалять. session.checkCertificateEnabled может и не понадобиться.

Также обратите внимание, что если вы пытаетесь заставить это работать с Gmail, вам может потребоваться разрешить менее безопасные приложения: https://support.google.com/accounts/answer/6010255.

person Pahnev    schedule 28.09.2016