SKSMTPMessage 错误 - 无法完成操作。(OSStatus 错误 -9807。



谁能帮我解释一下这个错误- " 操作无法完成。(OSStatus错误-9807.) "。

我谷歌了&发现,除SkSMTPMessage外,AVAudioPlayer类有时会出现此错误,但数字不同,即9800

我的问题是,A)你能告诉我,这里的数字有什么意义,B)为什么在代码中发生这种错误?

我找到了一个解决方案在这里-

似乎iOS 5+或更高版本和这个smtp应用程序有一些兼容性问题,因为iOS开始使用TLS 1.2。

SKPSMTPMessage.m中找到源代码,并像下面这样修改源代码,它工作

//CFDictionarySetValue(sslOptions, kCFStreamSSLLevel, kCFStreamSocketSecurityLevelTLSv1); 
CFDictionarySetValue(sslOptions, kCFStreamSSLLevel, kCFStreamSocketSecurityLevelSSLv3);

在我的情况下不起作用。

在这种情况下,当我试图用我的gmail帐户发送电子邮件时,它工作,但是当我试图从我的公司SMTP凭据发送它时,它不起作用。

我如何从我的应用程序解决这样的问题?

可能是SSL证书问题。我遇到了同样的问题,事实证明,我的服务器正在使用自签名SSL证书,iOS有问题。

添加一行:

// Only do this for self-signed certs!
emailMessage.validateSSLChain = NO;

最新更新