MailCore 无法登录 Gmail:mailcore Code=19 "unknown error code"

MailCore won't login to Gmail: mailcore Code=19 "unknown error code"

BOOL success = [CTSMTPConnection sendMessage:msg
                                      server:SMTPServer
                                    username:MyEmail
                                    password:Password
                                        port:587
                              connectionType:CTSMTPConnectionTypeStartTLS
                                     useAuth:YES
                                       error:&anyError];

returns 否

因为 gmail 阻止了它:

嗨...,

我们最近阻止了对您的 Google 帐户 [...@gmail.com] 的 sign-in 尝试。

登录尝试详细信息 日期和时间:美国东部时间 3 月 27 日星期五 11:50 上午 地点:...., .., 美国

如果这不是你 请查看 https://security.google.com/settings/security/activity 上的帐户 Activity 页面,看看是否有任何可疑之处。任何试图登录您帐户的人都知道您的密码;我们建议您立即更改它。

如果这是你 您可以切换到 Google 开发的应用程序(例如 Gmail)来访问您的帐户(推荐)或在 https://www.google.com/settings/security/lesssecureapps 更改您的设置,这样您的帐户就不再受现代安全标准的保护。

要了解更多信息,请参阅 https://support.google.com/accounts/answer/6010255

真诚的, Google 客户团队

除了他们建议的方法之外,还有其他解决方法吗https://www.google.com/settings/security/lesssecureapps

或任何其他想法? 谢谢

(04/13/15) 尝试过 Mailcore2:

MCOIMAPSession *session = [[MCOIMAPSession alloc] init];
[session setHostname:@"imap.gmail.com"];
[session setPort:993];
[session setUsername:[self.auth userEmail]];////GTMOAuth2Authentication
// no need using OAuthToken [session setPassword:MyPassword];
[session setOAuth2Token:self.auth.accessToken];//GTMOAuth2Authentication
session.authType =MCOAuthTypeXOAuth2;
session.connectionType=MCOConnectionTypeTLS;

MCOIMAPMessagesRequestKind requestKind = MCOIMAPMessagesRequestKindFullHeaders|MCOIMAPMessagesRequestKindFlags;
NSString *folder = @"INBOX";
MCOIndexSet *uids = [MCOIndexSet indexSetWithRange:MCORangeMake(1, UINT64_MAX)];

MCOIMAPFetchMessagesOperation *fetchMsgsHeadersOperation = [session fetchMessagesOperationWithFolder:folder requestKind:requestKind uids:uids];

[fetchMsgsHeadersOperation start:^(NSError * error, NSArray * messages, MCOIndexSet * vanishedMessages) {..}];

[fetchMsgsHeadersOperation 开始...];这里没有 headers 并且返回错误:

下载消息时出错 headers:Error Domain=MCOErrorDomain Code=5 "Unable to authenticate with the current session's credentials." UserInfo=0x1465b380 {NSLocalizedDescription=无法使用当前 session 的凭据进行身份验证。}

我从 google 那里得到了相同的 e-mail 登录被阻止。

这是日志:

2015-04-14 10:55:04.471 OneMoveSend[745:367613] 数据:* OK Gimap 准备好接受来自 129.174.182.46 l71mb205803572qga

的请求

2015-04-14 10:55:04.474 OneMoveSend[745:367613] 数据:1 能力

2015-04-14 10:55:04.488 OneMoveSend[745:367613] 数据:* CAPABILITY IMAP4rev1 UNSELECT IDLE NAMESPACE QUOTA ID XLIST CHILDREN X-GM-EXT-1 XYZZY SASL-IR AUTH=XOAUTH AUTH=XOAUTH2 AUTH=PLAIN AUTH=PLAIN-CLIENTTOKEN

1 好的,她写的就这些! l71mb205803572qga

2015-04-14 10:55:04.488 OneMoveSend[745:367613] 数据:2 登录 "bbbbbbbb@gmail.com" bbbbbbbbbbbbb

2015-04-14 10:55:06.678 OneMoveSend[745:367613] 数据:* 否 [WEBALERT https://accounts.google.com/ContinueSignIn?sarp=1&scc=1&plt=AKgnsbsSuzW0_UbAdY3GinDH5OB4sn6rLF3s99DkR5keKvBVYRoeutqusP4nwmE-9cuxb2oEte8Mk_jLtCbuwD_Q1ZuQBaE31DabcAAl4Cjz_lZvIk6iqlmxU5bNnhKWCANgtJdZoJ8T3LpPW_RGTcoiWwdzFfV1XwtA5xdGmkIM2xrrlD4rZfHpkU4zzbL5GZQnywqTfbVGt4Kya1h-ozh5Xzcxzz8cPegiV5NdYz7fvYvRSAh9DEI] 需要 Web 登录。

2 否 [ALERT] 请通过网络浏览器登录:http://support.google.com/mail/accounts/bin/answer.py?answer=78754(失败)

在您的日志中,我可以看到以下内容:

2 LOGIN "bbbbbbbb@gmail.com" bbbbbbbbbbbbb

这意味着您没有使用 OAuth2。 您应该使用 OAuth2 登录该帐户。