2016-03-10 7 views
0

Когда я пытаюсь получить по электронной почте через мой код Java, используя протокол IMAP, он всегда появляется исключение, как это:Gmail аутентификации Исключение

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:663) 
    at javax.mail.Service.connect(Service.java:345) 
    at javax.mail.Service.connect(Service.java:226) 
    at other_utility.NewTest.main(NewTest.java:15) 

Хотя я использовал действительные учетные данные, он все еще показывает это исключение , В чем проблема?

ответ

0

В Gmail есть опция «Разрешить подключения из менее защищенных приложений», которую вы можете найти в настройках безопасности своей учетной записи. Попробуйте включить это, чтобы определить, является ли это причиной ваших проблем. Если это так, по крайней мере, он указывает вас в правильном направлении.

Другая вещь, с которой я столкнулся с gmail, - ipv6 (хотя это может быть ограничено отправкой сообщений электронной почты). При использовании ipv6 gmail откажется от вашего соединения, если он не сможет выполнить обратный поиск DNS на вас. В качестве эксперимента вы можете попробовать

dig -4 mail.google.com 

Затем скопируйте/вставьте IP-адрес в свой код и попробуйте запустить его. Это абсолютно не долгосрочное решение, но, по крайней мере, помогает исключить возможность.

+0

Спасибо за ваш ответ. На самом деле я уже знаю о опции «Разрешить подключения из менее защищенных приложений», но мне нужно делать все это через мой код Java, и я не могу этого сделать. Я слышал о gmail api для получения электронной почты в java, но я не знал, как это получить и использовать. Это будет большой честью, если вы можете мне помочь. –

Смежные вопросы