发送邮件

命名空间:microsoft.graph

使用 JSON 或 MIME 格式发送请求正文中指定的邮件。

使用 JSON 格式时,可以在同一 sendMail 操作调用中包含 文件附件

使用 MIME 格式时:

  • 提供适用的 Internet 邮件头MIME 内容,所有内容在请求正文中都通过 base64 格式进行编码。
  • 向 MIME 内容添加任何附件和 S/MIME 属性。

此方法将邮件保存在 “已发送邮件” 文件夹中。

或者,创建草稿邮件稍后发送。

权限

要调用此 API,需要以下权限之一。要了解详细信息,包括如何选择权限的信息,请参阅权限

权限类型 权限(从最低特权到最高特权)
委派(工作或学校帐户) Mail.Send
委派(个人 Microsoft 帐户) Mail.Send
应用程序 Mail.Send

HTTP 请求

POST /me/sendMail
POST /users/{id | userPrincipalName}/sendMail

请求标头

名称 类型 说明
Authorization string Bearer {token}。必需。
Content-Type string 实体正文中的数据性质。必需。
对 JSON 对象使用 application/json,对 MIME 内容使用 text/plain

请求正文

使用 JSON 格式时,提供具有以下参数的 JSON 对象。

参数 类型 描述
message Message 要发送的邮件。必需。
SaveToSentItems Boolean 指示是否将邮件保存在“已发送邮件”文件夹中。仅在该参数为 false 时指定它。默认值为 true。可选。

当指定 MIME 格式的正文时,请在请求正文中提供 MIME 内容为 base64 编码的字符串

响应

如果成功,此方法返回 202 Accepted 响应代码。它不在响应正文中返回任何内容。

如果请求正文包含错误的 MIME 内容,此方法将返回 400 Bad request 和以下错误消息:“无效的 base64 字符串 MIME 内容”。

示例

示例 1:使用 JSON 格式发送新电子邮件

下面是一个如何调用此 API 的示例。

请求

下面是一个请求示例。

POST https://graph.microsoft.com/v1.0/me/sendMail
Content-type: application/json

{
  "message": {
    "subject": "Meet for lunch?",
    "body": {
      "contentType": "Text",
      "content": "The new cafeteria is open."
    },
    "toRecipients": [
      {
        "emailAddress": {
          "address": "fannyd@contoso.onmicrosoft.com"
        }
      }
    ],
    "ccRecipients": [
      {
        "emailAddress": {
          "address": "danas@contoso.onmicrosoft.com"
        }
      }
    ]
  },
  "saveToSentItems": "false"
}

响应

下面是一个响应示例。

HTTP/1.1 202 Accepted

示例 2:创建带自定义 Internet 邮件头的邮件并发送邮件

请求

POST https://graph.microsoft.com/v1.0/me/sendMail
Content-type: application/json

{
  "message": {
    "subject": "9/9/2018: concert",
    "body": {
      "contentType": "HTML",
      "content": "The group represents Nevada."
    },
    "toRecipients": [
      {
        "emailAddress": {
          "address": "AlexW@contoso.OnMicrosoft.com"
        }
      }
    ],
    "internetMessageHeaders":[
      {
        "name":"x-custom-header-group-name",
        "value":"Nevada"
      },
      {
        "name":"x-custom-header-group-id",
        "value":"NV001"
      }
    ]
  }
}

响应

下面是一个响应示例。

HTTP/1.1 202 Accepted

示例 3:创建带文件附件的邮件并发送邮件

请求

POST https://graph.microsoft.com/v1.0/me/sendMail
Content-type: application/json

{
  "message": {
    "subject": "Meet for lunch?",
    "body": {
      "contentType": "Text",
      "content": "The new cafeteria is open."
    },
    "toRecipients": [
      {
        "emailAddress": {
          "address": "meganb@contoso.onmicrosoft.com"
        }
      }
    ],
    "attachments": [
      {
        "@odata.type": "#microsoft.graph.fileAttachment",
        "name": "attachment.txt",
        "contentType": "text/plain",
        "contentBytes": "SGVsbG8gV29ybGQh"
      }
    ]
  }
}

响应

下面是一个响应示例。

HTTP/1.1 202 Accepted

示例 4:使用 MIME 格式发送新邮件

请求

POST https://graph.microsoft.com/v1.0/me/sendMail
Content-type: text/plain

RnJvbTogQWxleCBXaWxiZXIgPEFsZXhXQGNvbnRvc28uY29tPgpUbzogTWVnYW4gQm93ZW4gPE1l
Z2FuQkBjb250b3NvLmNvbT4KU3ViamVjdDogSW50ZXJuYWwgUmVzdW1lIFN1Ym1pc3Npb246IFNh
bGVzIEFzc29jaWF0ZQpUaHJlYWQtVG9waWM6IEludGVybmFsIFJlc3VtZSBTdWJtaXNzaW9uOiBT
YWxlcyBBc3NvY2lhdGUKVGhyZWFkLUluZGV4OiBjb2RlY29kZWNvZGVoZXJlaGVyZWhlcmUKRGF0
ZTogU3VuLCAyOCBGZWIgMjAyMSAwNzoxNTowMCArMDAwMApNZXNzYWdlLUlEOgoJPE1XSFBSMTMw
MU1CMjAwMDAwMDAwRDc2RDlDMjgyMjAwMDA5QUQ5QTlASFdIUFIxMzAxTUIwMDAwLmNvZGVudW0u
cHJvZC5vdXRsb29rLmNvbT4KQ29udGVudC1MYW5ndWFnZTogZW4tVVMKWC1NUy1IYXMtQXR0YWNo
OgpYLU1TLVRORUYtQ29ycmVsYXRvcjoKWC1NUy1Fe

响应

下面是一个响应示例。

HTTP/1.1 202 Accepted

如果请求正文包含错误的 MIME 内容,此方法返回以下错误消息。

HTTP/1.1 400 Bad Request
Content-type: application/json

{
    "error": {
        "code": "ErrorMimeContentInvalidBase64String",
        "message": "Invalid base64 string for MIME content."
    }
}