iOS 邮箱开发
2017-02-23 15:25
99 查看
最近花了几个月用mailcore2开发了一款邮箱,开发中遇到挺多问题的,这里分享一下我开发中遇到的各种问题。都是个人见解,有错误欢迎指出。
说明:本篇文章只讨论IMAP、SMTP协议,不讨论POP3协议。以下是IMAP和SMTP的端口号。
先上一段登陆代码,下面这段登陆验证的代码,几乎可以通过几大主流邮箱的验证了,什么QQ,神马139,什么163,什么神马,什么企业的,暂时未出现有何不妥。因为本人已亲测三大主流(QQ,139,163)四大企业(这里就不说了,公司秘密)。哈哈。。。。。。。。
上面登陆操作也会出现各种各样的坑爹错误。也没有啦,就是自己坑自己而已,因为mailcore2对MCOIMAPSession对象提供了丰富多彩的属性和方法,遇到错,就是你的错了,哈哈,还不赶紧查查少了哪些属性忘记配置了,或者配置错了。
言归正传,解释一下枚举MCOConnectionType,mailcore2提供三种type,如下:
MCOConnectionTypeClear //非SSL
MCOConnectionTypeStartTLS //先非SSL,再转安全的SSL
MCOConnectionTypeTLS //SSL
上面经过认证过的session将贯穿邮件收取操作的整个过程,具体你要怎么对她,那是你的事了,别太粗暴就行。还没有得到她的人,好吧,听我(娓娓道来)你做错了what???
先来点粗暴点的,mailcore二话不说,给你来个crash,叫你偷懒叫你拽,没辙了吧。这时你只需深呼吸,是不是感觉好点了。行,我们继续command+R。。。。。超大字号的F_U_C_K,又crash了。你XX的,老子卸载xcode,不玩鸟。。转行搬砖!!!!话说年轻人,不要这么鸡冻,我看你8成是没有设置hostname的值,什么!!传了?那你看看为不为nil啊,你传个nil反击你个crash,我过分吗?哈哈,传了不为nil,还是崩了,这时就看你造化了,等你经历81难,佛祖会把真经交给你的,到时麻烦也告诉我一下,好东西要分享,互相学习嘛。。好的,再看看下面你可能会遇到的。
这个错误可以从以下三个方面尝试解决:
hostname不存在,或者拼写错误,修改hostname;
需要SSL安全链接,将connectionType设置为MCOConnectionTypeTLS;
端口号错误。
这个主要是邮箱账号或者密码错误。
服务器证书无效,可以将checkCertificateEnabled 设置为NO,即session.checkCertificateEnabled = NO;
温馨提示:有些邮箱是要授权码才能登陆的,如QQ,163(测试貌似密码也能登陆),具体的到各自邮箱官网查看。
上班中,打字好累,周六日持续更新… …
补充:各位不好意思,最近赶项目较多加班,这篇文章往后推迟更新
说明:本篇文章只讨论IMAP、SMTP协议,不讨论POP3协议。以下是IMAP和SMTP的端口号。
协议 | 链接方式 | 端口号 |
---|---|---|
IMAP | SSL | 993 |
非SSL | 143 | |
SMTP | SSL | 465 |
非SSL | 25 |
MCOIMAPSession *session = [[MCOIMAPSession alloc] init]; [session setUsername:userName]; [session setPassword:password]; [session setHostname:hostName]; [session setPort:port]; session.checkCertificateEnabled = NO; [session setConnectionType:MCOConnectionTypeTLS]; MCOIMAPOperation *op = checkAccountOperation]; [op start:^(NSError * __nullable error) { if (error == nil) { //获取邮件 } else { //退回登陆界面 } }];
上面登陆操作也会出现各种各样的坑爹错误。也没有啦,就是自己坑自己而已,因为mailcore2对MCOIMAPSession对象提供了丰富多彩的属性和方法,遇到错,就是你的错了,哈哈,还不赶紧查查少了哪些属性忘记配置了,或者配置错了。
言归正传,解释一下枚举MCOConnectionType,mailcore2提供三种type,如下:
MCOConnectionTypeClear //非SSL
MCOConnectionTypeStartTLS //先非SSL,再转安全的SSL
MCOConnectionTypeTLS //SSL
上面经过认证过的session将贯穿邮件收取操作的整个过程,具体你要怎么对她,那是你的事了,别太粗暴就行。还没有得到她的人,好吧,听我(娓娓道来)你做错了what???
先来点粗暴点的,mailcore二话不说,给你来个crash,叫你偷懒叫你拽,没辙了吧。这时你只需深呼吸,是不是感觉好点了。行,我们继续command+R。。。。。超大字号的F_U_C_K,又crash了。你XX的,老子卸载xcode,不玩鸟。。转行搬砖!!!!话说年轻人,不要这么鸡冻,我看你8成是没有设置hostname的值,什么!!传了?那你看看为不为nil啊,你传个nil反击你个crash,我过分吗?哈哈,传了不为nil,还是崩了,这时就看你造化了,等你经历81难,佛祖会把真经交给你的,到时麻烦也告诉我一下,好东西要分享,互相学习嘛。。好的,再看看下面你可能会遇到的。
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.}
这个错误可以从以下三个方面尝试解决:
hostname不存在,或者拼写错误,修改hostname;
需要SSL安全链接,将connectionType设置为MCOConnectionTypeTLS;
端口号错误。
Error Domain=MCOErrorDomain Code=5 "Unable to authenticate with the current session's credentials." UserInfo={NSLocalizedDescription=Unable to authenticate with the current session's credentials.}
这个主要是邮箱账号或者密码错误。
Error Domain=MCOErrorDomain Code=4 "The certificate for this server is invalid." UserInfo={NSLocalizedDescription=The certificate for this server is invalid.}
服务器证书无效,可以将checkCertificateEnabled 设置为NO,即session.checkCertificateEnabled = NO;
温馨提示:有些邮箱是要授权码才能登陆的,如QQ,163(测试貌似密码也能登陆),具体的到各自邮箱官网查看。
上班中,打字好累,周六日持续更新… …
补充:各位不好意思,最近赶项目较多加班,这篇文章往后推迟更新
相关文章推荐
- iOS开发调用手机打电话,短信,邮箱和地图
- iOS开发中邮箱,电话号码,身份证,密码,昵称正则表达式验证
- iOS开发 根据正则表达式谓词(NSPredicate)判断邮箱,手机号码,身份证...
- iOS开发用正则表达式验证身份证,邮箱,手机号等
- iOS 开发 常用的正则验证表达式:电话 、邮箱等等
- IOS开发技巧之──验证邮箱合法性
- iOS开发--邮箱,电话号码,身份证正则表达式验证
- iOS开发(OC)——手机号码,邮箱,网址等正则表达式的实现
- [iOS开发复用代码小片段]-判断是否合法邮箱
- iOS 开发: 用户名、邮箱、电话号码、密码、昵称正则表达式验证
- iOS开发中邮箱,电话号码,身份证,密码,昵称正则表达式验证
- iOS开发正则表达式,验证是否是邮箱,手机号,银行卡号,URL等等
- iOS开发正则表达式 判断手机号码,邮箱格式是否正确
- iOS开发正则表达式判断邮箱是否合法
- iOS开发中邮箱,电话号码,身份证,密码,昵称正则表达式验证
- IOS开发技巧之──验证邮箱合法性
- [iOS开发]-判断是否合法邮箱
- iOS开发调用手机中的打电话,短信,邮箱,地图等
- iOS开发之苹果公司联系邮箱大全
- iOS开发中邮箱,电话号码,身份证,密码,昵称正则表达式验证