В нашем приложении нам нужно отправлять пользователям уведомления по электронной почте о различных событиях.
Я могу отправлять электронную почту, если отправляю как «Я» текущего пользователя, но пытаюсь отправить какдругая учетная запись пользователя возвращает сообщение об ошибке, и я бы предпочел, чтобы уведомления приходили не от самих пользователей и могли содержать информацию, которую мы не хотим перемещать в отправленных папках.
Что работает:
await graphClient.Me.SendMail(email, SaveToSentItems: false).Request().PostAsync();
Что не работает:
string FromUserEmail = "notifications@contoso.com";
await graphClient.Users[FromUserEmail].SendMail(email, SaveToSentItems: false).Request().PostAsync();
Также попытался напрямую использовать идентификатор объекта пользователя:
await graphClient.Users["cd8cc59c-0815-46ed-aa45-4d46c8a89d72"].SendMail(email, SaveToSentItems: false).Request().PostAsync();
Мое приложение имеет разрешения для API-интерфейса Graph для "Send mail as any user
"включено и предоставлено владельцем / администратором.
Сообщение об ошибке, возвращаемое API:
Код: ErrorFolderNotFound Сообщение: указанная папка не найдена в хранилище.
Я думал, что эта ошибка могла быть из-за того, что в учетной записи уведомлений не было отправленной папки, поэтому я установил для SaveToSentItems
значение false, но я все еще получаю ту же ошибку.
Есть ли сettings Мне нужно проверить саму учетную запись, чтобы приложение могло отправлять почту на эту учетную запись, или это должно сработать?
Я ознакомился с документацией здесь: https://developer.microsoft.com/en-us/graph/docs/api-reference/v1.0/api/user_sendmail
.поддерживает то, что я пытаюсь сделать, но не ссылается ни на какую папку, кроме папки отправленных элементов, которую я советую API не сохранять в любом случае.
Мы не собираемся выдавать себя за любую реальнуюпользователь здесь, просто отправьте уведомления по электронной почте из приложения из этой конкретной учетной записи (я знаю, что это технически олицетворение, но не реальная сущность).