2016-12-16 4 views
0

IMAP(gmail API)を使用してGmailにログインしようとしていますが、ユーザー名&を渡してからInvocation TargetExceptionを取得しました。ここ はあなたをthis.Thank解決する方法を私を助けてください私のコードjava.lang.reflect.InvocationTargetException on IMAPを使用してGmailにログイン

`Properties props = System.getProperties(); 
props.setProperty("mail.store.protocol", "imaps"); 
Session session = Session.getDefaultInstance(props, null); 
Store store = session.getStore("imaps"); 
store.connect("imap.gmail.com", "<username>@gmail.com", "<password>"); 
//Here im getting exception and below is the log 
Exception in thread "main" javax.mail.AuthenticationFailedException: [ALERT] Please log in via your web browser: https://support.google.com/mail/accounts/answer/78754 (Failure) 
at com.sun.mail.imap.IMAPStore.protocolConnect(IMAPStore.java:474) 
at javax.mail.Service.connect(Service.java:275) 
at javax.mail.Service.connect(Service.java:156) 
} 

です。

+0

完全なスタックトレースを含めてください。 – Max

+0

@Max、以下の例外を取得しています:スレッド「main」の例外javax.mail.AuthenticationFailedException:[アラート] Webブラウザからログインしてください:https://support.google.com/mail/accounts/answer/78754( javax.mail.Service.connectで失敗) com.sun.mail.imap.IMAPStore.protocolConnectで\t(IMAPStore.java:474) javax.mail.Service.connectで\t(Service.java:275) \t (Service.java:156) – khanam

+0

あなたのGmailアカウントで「セキュアでないアプリケーション」を有効にしましたか?あなたはGmailを使ってセキュリティトラップをやっています。ときどきそれを修正する唯一の実際の方法は、OAUTH2を使用することです。 – Max

答えて

1

人間が判読できるテストで特定のURLが示唆されているGmailからALERTを取得しました。それは本当に提案やリクエストではありません。「してください」という言葉にもかかわらず、それは必須条件です。

ログインするには、まずWebログインを実行し、javascriptをサポートし、captchaを解決できるブラウザを使用する必要があります。

これを回避する方法があります。通常はです。クライアントコードのOAUTH2をオンにするか、gmailアカウントのセキュリティ設定を変更します。どちらも通常動作しますが、保証はありません。 Googleはヒューリスティックとさまざまな魔法を使って、実際のユーザーか攻撃者かを推測します。評価エンジンが特定のログインについてあまりにも不確かな場合、Googleは二要素認証またはキャプチャを使用します。

関連する問題