Я получил 403 Запрещено, когда пытаюсь отправить почту с помощью графического API
Если я попытаюсь войти в систему с идентификатором @gmail или @outlook, тогда он работает нормально
Но недавно я попытался отправить почту с использованием идентификатора домена @hotmail.com. В этом случае я могу вызвать API графа получения почты, но получил ошибку 403 в случае API графа отправки почты.
Какова точная проблема?
Я получил этот ответ при попытке отправить API почтового графа
Есть проблема, когда я вошел в систему с идентификатором домена @hotmail, но я не могу отправить почту, функция получения почты работает нормально
Я попытался воспроизвести то же самое в своей среде.
Нижеприведенная ошибка возникает, если лицензия Office365 недоступна для вашей подписки.
После использования лицензионной подписки.
Эта ошибка возникает, когда вместо разрешений приложения для доступа к почте выдаются delegated permissions
.
https://graph.microsoft.com/v1.0/Users/xxx/sendMail
и Пожалуйста, убедитесь, что вы вошли в систему с учетной записью, в которой вы являетесь member
из .
И иметь привилегии для отправки почты. Пользователь-гость может не иметь доступа ко всем ресурсам, а некоторые организации ограничивают учетные записи Hotmail/live. Гость должен принять приглашение.
Проверьте назначение пользователей и соответствующим образом измените настройки, чтобы разрешить пользователям отправлять почту.
И для них назначьте соответствующую роль, чтобы иметь права доступа.
Какие разрешения API даны? делегированные или прикладные разрешения?
делегирован, и я также могу отправлять свою почту, используя другие идентификаторы электронной почты. В случае идентификатора @hotmail.com я не могу отправлять почту, но я могу получать почту с этим идентификатором.
Делегированные разрешения не будут работать с конечной точкой /me.
И можем ли мы войти в систему, используя идентификатор @gmail в авторизации графа API? , Если я попытаюсь войти в систему в это время, я получу эту ошибку. Мы не смогли найти учетную запись с таким именем пользователя. Попробуйте другой или
Дайте разрешения для приложения mail.send, пользователь должен быть утвержденным пользователем, должен быть членом.
Я использую разрешение user.send в качестве переменной области для создания токена.
scope : "user.read Mail.Send Mail.Read Mail.ReadBasic Mail.ReadWrite openid profile offline_access",
Я добавил эту область в полезную нагрузку для генерации токена. Он отлично работает для других идентификаторов.
Вы должны проверить с разрешениями приложений, предоставленными согласием администратора.
Я использую эту конечную точку для отправки почты
https://graph.microsoft.com/v1.0/me/sendMail