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

How can I send mail in office 365 REST API?

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

这是文档中给出的示例:

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"
}

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

如果您能提供示例帮助,我将不胜感激。仅供参考:我正在使用 Java 但您的答案不必在 Java.

将 URL 的 /me 位替换为 /users/<userid>。您不能将 /me 用于任何 API 带有来自客户端凭据的令牌的调用。