Я работаю над сценарием 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
Еще одна деталь: мой пароль содержит знак $, но это не имеет значения. Я использую одинарные кавычки для пароля, и экранирование знака $ не помогает, это приводит к неудачному входу в систему даже для моего личного почтового ящика.
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)
Еще одно решение, которое сработало для нас, - это добавить данные имени пользователя в параметр почтового ящика, используя соответствующие флаги.
Например, с конфигурацией 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.
Это сработало для нас, когда подход псевдонима почтового ящика в предыдущем ответе не был успешным.
Похожие вопросы
Связанные вопросы
Новые вопросы
php
PHP — это открытый, мультипарадигмальный, динамически типизированный и интерпретируемый язык сценариев, изначально разработанный для веб-разработки на стороне сервера. Используйте этот тег для вопросов о программировании на языке PHP.