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 登录该帐户。
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 登录该帐户。