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

时间:2016-11-10 19:25:50

标签: exchange-server azure-active-directory adal office365api outlook-restapi

我发现了以下有关如何使用Office 365 rest API发送电子邮件的documentation

这是关于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": "garthf@a830edad9050849NDA1.onmicrosoft.com"
        }
      }
    ],
    "Attachments": [
      {
        "@odata.type": "#Microsoft.OutlookServices.FileAttachment",
        "Name": "menu.txt",
        "ContentBytes": "bWFjIGFuZCBjaGVlc2UgdG9kYXk="
      }
    ]
  },
  "SaveToSentItems": "false"
}

如果用户授权应用程序代表它执行操作,则此工作正常。但是,我正在使用客户端信用来构建一个守护程序应用程序,该应用程序代表给定租户中的所有用户,因此" POST https://outlook.office.com/api/v2.0/me/sendmail" 无法运行工作,因为它引用了" me"并且无法告诉哪个用户正在发送电子邮件。

如果你可以提供示例示例,我会谨慎行事。仅供参考:我使用的是Java,但您的回答并非必须是Java。

1 个答案:

答案 0 :(得分:5)

/me替换网址的/users/<userid>位。您无法使用/me对来自客户端凭据的令牌进行任何API调用。