Я работаю над сценарием PHP для чтения и анализа журналов ошибок, отправленных в общий почтовый ящик.

Я использую imap_open () для подключения.

Если я подключусь к своему почтовому ящику со следующими учетными данными, он будет работать нормально

server: {outlook.office365.com:993/imap/ssl}
username: myname@domain.com
password: mypas$word

Однако, если я хочу подключиться к общему почтовому ящику со следующими учетными данными, я получаю сообщение об ошибке

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)

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

Я на 100% уверен, что моя учетная запись может получить доступ к общему почтовому ящику, я могу получить к нему доступ через свою учетную запись через веб-интерфейс Office 365

Еще одна деталь: мой пароль содержит знак $, но это не имеет значения. Я использую одинарные кавычки для пароля, и экранирование знака $ не помогает, это приводит к неудачному входу в систему даже для моего личного почтового ящика.

4
Surya 12 Фев 2015 в 18:12

2 ответа

Лучший ответ

Попробуйте использовать псевдоним учетной записи

% USERUPN% /% SHAREDALIAS%, например: -

user@domain.com/sharedbox, где sharedbox - это псевдоним общего почтового ящика, а не полный адрес электронной почты

Я видел разные отчеты, в которых некоторые люди использовали косую черту (/), а некоторые - обратную косую черту (\).


Редактировать

Вы используете псевдоним почтового ящика? Не используйте sharedbox@shareddomain.com

Конфигурация обмена:

  USER EMAIL: user@maindomain.com
  PASSWORD: password



 SHARED MAILBOX: shared@anotherdomain.com      (could also be @domain.com, of course)
  SHARED MAILBOX ALIAS: shared-mailbox

Примечание: убедитесь, что вы всегда создаете УНИКАЛЬНЫЙ псевдоним с почтовым ящиком, поскольку он создает пользователя [псевдоним] @ 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)
4
greg_diesel 12 Фев 2015 в 18:22

Еще одно решение, которое сработало для нас, - это добавить данные имени пользователя в параметр почтового ящика, используя соответствующие флаги.

Например, с конфигурацией 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 и общего почтового ящика с использованием флага / user.

Это сработало для нас, когда подход псевдонима почтового ящика в предыдущем ответе не был успешным.

7
Ben Sommerville 3 Июн 2015 в 02:51