使用如下所示的来自Azure函数的图形API发送邮件
await graphClient.Me.SendMail(message,true).Request()。PostAsync()。ConfigureAwait(false);
获取错误:消息=代码:ErrorInvalidUser消息:请求的用户'5f1fb9dd-2fc2-4f4d-8fa4-ebd144432b9e @ eb0eeae1-e81a-4a23-a4e4-ca8688e0a18a'无效。
这(eb0eeae1-e81a-4a23-a4e4-ca8688e0a18a是我的租户ID,但这是什么(5f1fb9dd-2fc2-4f4d-8fa4-ebd144432b9e)。
。我正在发送给我的租户中已经存在的默认用户([email protected])。
请帮助,我有什么遗漏吗?
如果要使用graphClient.Me
,则需要获得用户身份验证。您可以使用Username/password provider。这样,您可以调用Me
端点。
或者,您可以使用Client credentials provider获得作为应用程序的身份验证。这样,您需要使用发送电子邮件,如下所示:
IConfidentialClientApplication confidentialClientApplication = ConfidentialClientApplicationBuilder
.Create(clientId)
.WithTenantId(tenantID)
.WithClientSecret(clientSecret)
.Build();
ClientCredentialProvider authProvider = new ClientCredentialProvider(confidentialClientApplication);
GraphServiceClient graphClient = new GraphServiceClient(authProvider);
graphClient.Users["user_id_here, i.e. ab6d4cd6-fc2d-40c7-a676-f8773aebfb5f"].SendMail(message, true).Request().PostAsync().ConfigureAwait(false).GetAwaiter().GetResult();
IConfidentialClientApplication ConfidentialClientApplication = ConfidentialClientApplicationBuilder.Create(客户编号).WithTenantId(tenantID).WithClientSecret(clientSecret).Build();
ClientCredentialProvider authProvider =新的ClientCredentialProvider(confidentialClientApplication);
GraphServiceClient graphClient =新的GraphServiceClient(authProvider);
string fromUserEmail [email protected]
graphClient.Users [fromUserEmail] .SendMail(message,true).Request()。PostAsync()。ConfigureAwait(false).GetAwaiter()。GetResult();