【问题标题】:How can I send mail in office 365 REST API?如何在 office 365 REST API 中发送邮件?
【发布时间】:2016-11-11 05:18:53
【问题描述】:

我找到了以下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"
}

如果用户授权应用程序代表它进行操作,这将正常工作。但是,我正在使用客户端凭据构建一个守护程序应用程序,该应用程序代表给定租户中的所有用户,因此 "POST https://outlook.office.com/api/v2.0/me/sendmail" 无法工作,因为它引用了“我”和无法判断哪个用户正在发送电子邮件。

如果您可以提供示例示例,我会很高兴。仅供参考:我正在使用 Java,但您的答案不一定是 Java。

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

    • 我现在面临不受支持的媒体类型。我尝试使用和不使用 application/json 并且都返回不受支持的媒体类型。此 POST 方法支持什么媒体类型?
    • application/jsonContent-Type 标头中的正确值。
    • 顺便说一句,对于同一个应用程序,是否可以在一个请求中发送多个电子邮件地址(即不同的 O365 帐户)并获取其入站电子邮件,而无需为每个用户多次发送 REST 请求?
    • 您可以通过带有 REST 的 webhook 进行通知:msdn.microsoft.com/office/office365/APi/notify-rest-operations
    • 是的,您只需要使用合格的 URL,将 /me 替换为 /users/
    猜你喜欢
    • 1970-01-01
    • 2021-12-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-09-24
    • 2020-08-07
    • 2015-05-24
    • 1970-01-01
    相关资源
    最近更新 更多