user:sendMail

命名空间: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 持有者 {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": "frannis@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."
    }
}