Я работаю над скриптом PHP для чтения и анализа журналов ошибок, отправленных в общий почтовый ящик.
Я использую imap_open () для подключения.
Если я подключаюсь со следующими учетными данными к своему почтовому ящику, он отлично работает
server: {outlook.office365.com:993/imap/ssl} username: myname@domain.com password: mypas$word
Однако, если я хочу подключиться к sared почтовому ящику с последующими учетными данными, я получаю сообщение об ошибке
server: {outlook.office365.com:993/imap/ssl} username: myname@domain.com\shared-folder@domain.com password: mypas$word
Ошибка заключается в следующем: User is authenticated but not connected. (errflg=2)
User is authenticated but not connected. (errflg=2)
Согласно моим исследованиям, это означало бы, что я использую неправильный пароль, но поскольку он работает при подключении к моему собственному почтовому ящику, это не может быть ошибкой
Я на 100% уверен, что моя учетная запись может получить доступ к общему почтовому ящику, я могу получить к нему доступ через мою учетную запись через веб-интерфейс Office 365
Еще одна деталь: мой пароль включает знак $, но это не имеет значения. Я использую одинарные кавычки в пароле, а escape-знак $ не помогает, это приводит к неудачному входе в систему даже для моего личного почтового ящика.
Попробуйте использовать псевдоним учетной записи
% USERUPN% /% SHAREDALIAS%, например: –
user@domain.com/sharedbox
где «sharedbox» – это псевдоним общего почтового ящика, а не полный адрес электронной почты
Я видел разные сообщения о том, что некоторые люди используют косую черту (/), а некоторые используют обратную косую черту (\)
редактировать
Вы используете псевдоним почтового ящика? Не используйте sharedbox@shareddomain.com
Конфигурация Exchange:
USER EMAIL: user@maindomain.com PASSWORD: password SHARED MAILBOX: shared@anotherdomain.com (could also be @domain.com, of course) SHARED MAILBOX ALIAS: shared-mailbox
Примечание. Обязательно создайте псевдоним UNIQUE всегда с почтовым ящиком, поскольку он создает пользователя [alias] @ maindomain.com. В этом случае shared-mailbox@maindomain.com
Настройки для конфигурации IMAP:
EMAIL ADDRESS: shared@anotherdomain.com (shared mailbox) IMAP SERVER: outlook.office365.com SMTP SERVER: smtp.office365.com USERNAME: user@maindomain.com\shared-mailbox (user\shared mailbox alias) PASSWORD: password (user's password)
Другим решением, которое сработало для нас, является добавление данных имени пользователя в параметр почтового ящика с использованием соответствующих флагов.
Например, с конфигурацией Office 365
USER EMAIL: user@maindomain.com PASSWORD: password SHARED MAILBOX: shared@anotherdomain.com
то вызов imap_open будет
imap_open("{outlook.office365.com:993/imap/ssl/authuser=user@maindomain.com/user=shared@anotherdomain.com}", "user@maindomain.com", "password");
Обратите внимание на включение электронной почты основного пользователя с использованием флага / authuser и общего почтового ящика с использованием флага / пользователя.
Это сработало для нас, когда подход псевдонимов почтового ящика в предыдущем ответе не был успешным.