#java #outlook #jakarta-mail
#java #outlook #джакарта-почта
Вопрос:
я пытаюсь открыть папку в своем электронном письме, но безуспешно.
это ошибка:
Mar 06, 2019 1:24:14 PM Export run
SEVERE: A3 BAD User is authenticated but not connected.
javax.mail.MessagingException: A3 BAD User is authenticated but not connected.;
nested exception is:
com.sun.mail.iap.BadCommandException: A3 BAD User is authenticated but not connected.
at com.sun.mail.imap.IMAPFolder.open(IMAPFolder.java:960)
at Export.getEmails(Export.java:115)
at Export.run(Export.java:72)
at Main.main(Main.java:5)
Caused by: com.sun.mail.iap.BadCommandException: A3 BAD User is authenticated but not connected.
at com.sun.mail.iap.Protocol.handleResult(Protocol.java:338)
at com.sun.mail.imap.protocol.IMAPProtocol.select(IMAPProtocol.java:656)
at com.sun.mail.imap.IMAPFolder.open(IMAPFolder.java:926)
... 3 more
и это то, что я пытался:
public void getEmails() throws MessagingException, IOException {
Session session = Session.getInstance(props);
session.setDebug(DEBUG);
store = null;
store = session.getStore("imap");
store.connect("imap-mail.outlook.com", this.userName, this.password);
folder = store.getFolder(FOLDER_NAME);
folder.open(Folder.READ_ONLY);
int total_messages = folder.getMessageCount();
if(total_messages > 0) {
messages = folder.getMessages();
}
}
это реквизит:
props = new Properties();
props.setProperty("mail.store.protocol", "imap");
props.setProperty("mail.imap.ssl.enable", "true");
props.setProperty("mail.imap.starttls.enable", "true");
props.setProperty("mail.imap.host", "imap-mail.outlook.com");
props.setProperty("mail.imap.port", "993");
имя пользователя и пароль в порядке.
Я попытался сменить пароль, и я получил другую ошибку с аутентификацией, поэтому пароль и имя пользователя верны.
я проверяю store.isConnected и получаю true. проблема в строке:
folder.open(Folder.READ_ONLY);
в чем может быть проблема?
tnx много
Комментарии:
1. Это очень странно. Похоже, что сервер по какой-то причине недоволен. Вероятно, вам потребуется связаться outlook.com обратитесь в службу поддержки, чтобы выяснить, что означает сообщение об ошибке.
2. для этого нет объяснения?
3. Вы говорите мне. Что сделало outlook.com служба поддержки сообщила, когда вы связались с ними?
Ответ №1:
Моему недавно созданному почтовому ящику потребовалось много времени, чтобы зарегистрировать все его конфигурации на O365, и для меня, по крайней мере, это выглядело как проблема с синхронизацией, надеюсь, другие найдут это полезным.
Ответ №2:
Я столкнулся с этой ошибкой с imap и outlook.office365.com. Я попытался настроить ту же учетную запись в Outlook, чтобы убедиться, что она работает в целом. Хотя я смог добавить учетную запись, когда я действительно попытался просмотреть входящие, Outlook перестал отвечать. Итак, в моем случае это была проблема с учетной записью в целом, а не с тем, как я пытался подключиться. Я смог успешно попасть в папку «Входящие» с помощью pop3, проблема была только в imap, который вызвал у меня проблему.
Ответ №3:
Exchange и Office365 будут принимать подключения по протоколу IMAP и проверять подлинность пользователей на них, даже если у пользователя нет прав доступа по протоколу IMAP. Ошибка возникает только при выполнении первой команды IMAP после успешной аутентификации, когда выдается ошибка:
User is authenticated but not connected
Чтобы исправить это, отредактируйте разрешения пользователя и убедитесь, что разрешен IMAP.
Ответ №4:
Лучше поздно, чем никогда. У меня возникла та же проблема при переходе с базовой аутентификации IMAP на XOAUTH2
(OAuth 2.0), поскольку MS деактивирует базовую аутентификацию в любую минуту (октябрь 2022)
В моем случае пользователю были предоставлены разрешения IMAP с помощью Powershell:
Add-MailboxPermission -Identity "xxx@yyy.com" -User A92BE11B-ED50-4A1C-909F-52D12BE169E3 -AccessRights FullAccess
НО xxx@yyy.com
это был псевдоним реального пользователя zzz@yyy.com
, и я пытался войти с zzz@yyy.com
Оба следующих решения сработали:
- Войдите в систему под псевдонимом пользователя
xxx@yyy.com
(тот же пароль, что и у реального пользователя) - Предоставьте реальному пользователю разрешения IMAP:
Add-MailboxPermission -Identity "zzz@yyy.com" -User A92BE11B-ED50-4A1C-909F-52D12BE169E3 -AccessRights FullAccess
Ответ №5:
В моем случае имя пользователя для входа (email) учитывало регистр. Итак User@domain.com не является user@domain.com и получал эту ошибку вместо ошибки user not found.