使用Microsoft Graph API在共享邮箱上下文环境中代表共享邮箱发送指定发件人回复邮件的问题求助
Microsoft Graph API在共享邮箱上下文环境中代表共享邮箱发送指定发件人回复邮件的问题求助
各位好,我最近在做一个用Microsoft Graph API处理多共享邮箱收发邮件的应用,遇到了一个棘手的问题,想请教下大家:
我的应用通过OAuth认证到Azure AD中的一个应用,这个应用拥有应用类型权限,目前收发共享邮箱的普通邮件、回复邮件都正常。但现在需要实现一个需求:让用户Bob代表共享邮箱(比如info@something.com)发送邮件,并且收件人看到的发件人是Bob,而不是共享邮箱本身。
举个具体的例子:
我通过这个接口获取共享邮箱的收件箱邮件:
GET https://graph.microsoft.com/v1.0/users/info@something.com/mailFolders/Inbox/messages
回复某封邮件时,调用的是共享邮箱上下文的reply接口:
POST https://graph.microsoft.com/v1.0/users/info@something.com/messages/dc90ed89-f897-4516-96c7-e25e1d37eec1/reply
请求体里我特意指定了sender为Bob的邮箱:
{ "message": { "toRecipients": [ { "emailAddress": { "name": "Someone", "address": "someone@someplace.com" } } ], "attachments": [], "sender": { "emailAddress": { "name": "bob", "address": "bob@something.com" } } }, "comment": "Some mail html here" }
但发送后发现,邮件的发件人还是被改成了共享邮箱info@something.com。我猜这是因为我是在共享邮箱的上下文下发起的请求,但问题是我只能通过共享邮箱的上下文访问这些邮件内容。
我已经确认Bob拥有这个共享邮箱的「代表发送」权限,甚至尝试给Bob设置了「发送为」权限,但都没解决问题。
想请教大家:有没有办法在共享邮箱的上下文环境中,发送邮件时指定发件人为Bob?还是说必须要以Bob的身份单独认证,再发送邮件才行?
备注:内容来源于stack exchange,提问作者Artemis




