Question:
When I try to authenticate with Chilkat IMAP, I get this failure:
ImapCmdResp: aaab NO [ALERT] Please log in via your web browser: http://support.google.com/mail/accounts/bin/answer.py?answer=78754 (Failure)
Double-check your application to make sure the correct login/password is being passed to Chilkat.Imap.Login
Assuming it is correct, then the likely resolution is to configure your GMail account to "allow less secure apps": https://support.google.com/accounts/answer/6010255
In GMail terms, "less secure" means logging in with a login/password via SSL/TLS.
More secure means to use an OAuth2 access token, which can be done using Chilkat as shown in the examples:
Here is my situation.
Initially gmail authentication through Chilkat failed and after analysing I found that I have to turn ON "allow less secure apps". Then the authentication succeeded. To avoid turning ON "allow less secure apps" in every gmail account, I followed solution provided in below link.
http://www.example-code.com/objc/imap_gmail_oauth2.asp
Steps followed:
1) We created a certificate file(.p12).
Through the service account(in developer console) and we have the service account email address as well.
2) I am able to generate accesstoken successfully.
NSString *accessToken = [http G_SvcOauthAccessToken: iss scope: scope subEmail: sub numSec: [NSNumber numberWithInt: numSec] cert: cert];
3) Connecting to "imap.gmail.com mail" server succeeded.
success = [imap Connect: @"imap.gmail.com"];
4) But when I try to authenticate to gmail account using any gmail ID the authentication fails.
success = [imap Login: @"user@your-domain.com" password: accessToken];
Below is the error message I get in imap.LastErrorText.
ChilkatLog:
Connect_Imap:
DllDate: Sep 21 2015
ChilkatVersion: 9.5.0.52
UnlockPrefix: Hello World
Architecture: Little Endian; 64-bit
Language: IOS Objective-C
VerboseLogging: 0
connectInner:
connectToImapServer:
hostname: imap.gmail.com
port: 993
socketOptions:
SO_SNDBUF: 262752
SO_RCVBUF: 131072
TCP_NODELAY: 4
SO_KEEPALIVE: 8
--socketOptions
ConnectionType: SSL/TLS
--connectToImapServer
--connectInner
Success.
--Connect_Imap SendRawCommand:
Looks like an authenticate command...
getCompleteResponse:
idleTimeoutMs: 60000
tlsReadIncoming: Socket operation timeout.
Failed to receive more TLS applicaton data.
recvUntilMatch: Socket operation timeout.
getImapResponseLine: Socket operation timeout.
Failed to get next response line from IMAP server.
--getCompleteResponse
Looks like authentication was NOT successful..
Failed.
--SendRawCommand --ChilkatLog