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

时间:2014-05-06 11:29:52

标签: ios objective-c email smtp

任何人都可以帮我理解错误 - “操作无法完成。(OSStatus error -9807。)”。

我用google搜索&发现,SkSMTPMessage除外,有时此错误出现在AVAudioPlayer类中,但数字不同,即 9800

我的问题是, A)您能告诉我,这里有多少重要的数字, B)为什么代码中会出现这样的错误?

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

似乎iOS 5+或更高版本以及此smtp应用程序存在一些兼容性问题,因为iOS开始使用TLS 1.2。

SKPSMTPMessage.m中找到来源,并按照以下方式修改来源,它可以正常工作

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

在我的案例中没有用。

在这种情况下,当我尝试使用我的gmail帐户发送电子邮件时,但当我尝试从我的公司SMTP凭据发送时,它没有不行。

如何从我的应用中解决此类问题?

2 个答案:

答案 0 :(得分:2)

可能是由SSL证书引起的。我遇到了同样的问题,结果证明我的服务器使用的是自签名SSL证书,iOS也有问题。

答案 1 :(得分:0)

添加以下行:

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