如何在Office 365 REST API中发送邮件?

问题描述:

关于如何使用Office 365 rest API发送电子邮件,我发现了以下documentation如何在Office 365 REST API中发送邮件?

这是对doucmentation给出的例子:

POST https://outlook.office.com/api/v2.0/me/sendmail 

{ 
    "Message": { 
    "Subject": "Meet for lunch?", 
    "Body": { 
     "ContentType": "Text", 
     "Content": "The new cafeteria is open." 
    }, 
    "ToRecipients": [ 
     { 
     "EmailAddress": { 
      "Address": "[email protected]" 
     } 
     } 
    ], 
    "Attachments": [ 
     { 
     "@odata.type": "#Microsoft.OutlookServices.FileAttachment", 
     "Name": "menu.txt", 
     "ContentBytes": "bWFjIGFuZCBjaGVlc2UgdG9kYXk=" 
     } 
    ] 
    }, 
    "SaveToSentItems": "false" 
} 

这如果用户授权的应用程序采取行动是代表工作正常。但是,我使用客户端信誉来构建守护程序应用程序,该应用程序代表给定租户中的所有用户,因此“POST https://outlook.office.com/api/v2.0/me/sendmail无法正常工作,因为它引用“我”并且无法分辨哪个用户是发送电子邮件。

我会appericiate,如果你可以帮助示例的例子。仅供参考:我正在使用Java,但您的答案不一定要用Java。

/users/<userid>替换URL中的/me位。您无法使用/me与来自客户端凭证的令牌进行任何API调用。

+0

我现在面临不受支持的媒体类型。我尝试使用和不使用application/json,并且都返回不受支持的媒体类型。此POST方法支持哪种媒体类型? – WowBow

+1

'application/json'是Content-Type头中的正确值。 –

+0

btw对于同一个应用程序是否可以在一个请求中发送多个电子邮件地址(即不同的O365帐户)并获取他们的入站电子邮件,而不必为每个用户多次发送REST请求? – WowBow