服务端 API/邮箱/用户邮件/发送邮件
# 发送邮件

发送邮件

**注意事项**：该接口基于单个用户加锁，只能串行调用
**注意事项**：发送邮件使用 base64url 编码。与普通 base64 的区别是将「+/」替换为「-_」。
对于 Golang 使用 base64.URLEncoding。

## 请求

基本 | &nbsp;
---|---
HTTP URL | https://open.larksuite.com/open-apis/mail/v1/user_mailboxes/:user_mailbox_id/messages/send
HTTP Method | POST
接口频率限制 | [100 次/分钟](https://open.larksuite.com/document/ukTMukTMukTM/uUzN04SN3QjL1cDN)
支持的应用类型 | Custom App
权限要求<br>**调用该 API 所需的权限。开启其中任意一项权限即可调用** | 发送用户邮件(mail:user_mailbox.message:send)

### 请求头

名称 | 类型 | 必填 | 描述
---|---|---|---
Authorization | string | 是 | `user_access_token`<br>**值格式**："Bearer `access_token`"<br>**示例值**："Bearer u-7f1bcd13fc57d46bac21793a18e560"<br>[了解更多：如何选择与获取 access token](https://open.larksuite.com/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-choose-which-type-of-token-to-use)
Content-Type | string | 是 | **固定值**："application/json; charset=utf-8"

### 路径参数

名称 | 类型 | 描述
---|---|---
user_mailbox_id | string | 用户邮箱地址 或 输入me代表当前调用接口用户<br>**示例值**："user@xxx.xx 或 me"

### 请求体

名称 | 类型 | 必填 | 描述
---|---|---|---
subject | string | 否 | 主题<br>**示例值**："邮件标题"
to | mail_address\[\] | 否 | 收件人
mail_address | string | 是 | 邮件地址<br>**示例值**："user@xxx.xx"
name | string | 否 | 名称<br>**示例值**："Mike"
raw | string | 否 | eml数据<br>**示例值**："U3ViamVjdDogSGVsbG8hCkZyb206ICJtaWtlIiA8bWlrZUBtaWtlLmNvbT4KTWltZS1WZXJzaW9uOiAxLjAKQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvYWx0ZXJuYXRpdmU7CiBib3VuZGFyeT1iMjhmYTIyNGExZWU2ZDY3ZjE3OTViNGUxZDEwM2Q3MTBlNzM5ZWVmYjFmZjlmOWQ4NWI4M2NlOTRmMTEKRGF0ZTogV2VkLCAyMyBKdWwgMjAyNSAxNTo0NDoxOCArMDgwMApNZXNzYWdlLUlkOiA8bW9ja3V1aWRtZXNzYWdlX2lkQGxhcmsuY29tPgpUbzogImphY2siIDxqYWNrQGphY2suY29tPgoKLS1iMjhmYTIyNGExZWU2ZDY3ZjE3OTViNGUxZDEwM2Q3MTBlNzM5ZWVmYjFmZjlmOWQ4NWI4M2NlOTRmMTEKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogN2JpdApDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKCldlbGNvbWUgdG8gTGFyayBtYWlsIQotLWIyOGZhMjI0YTFlZTZkNjdmMTc5NWI0ZTFkMTAzZDcxMGU3MzllZWZiMWZmOWY5ZDg1YjgzY2U5NGYxMQo="
cc | mail_address\[\] | 否 | 抄送
mail_address | string | 是 | 邮件地址<br>**示例值**："user@xxx.xx"
name | string | 否 | 名称<br>**示例值**："Mike"
bcc | mail_address\[\] | 否 | 密送
mail_address | string | 是 | 邮件地址<br>**示例值**："user@xxx.xx"
name | string | 否 | 名称<br>**示例值**："Mike"
body_html | string | 否 | 正文<br>**示例值**："xxxx"
body_plain_text | string | 否 | 正文纯文本<br>**示例值**："xxxx"
attachments | attachment\[\] | 否 | 附件
body | string | 是 | 附件的正文，使用 base64url 编码（支持的文件最大 37MB）<br>**示例值**："aGVsbG8gd29ybGQK"<br>**数据校验规则**：<br>- 最大长度：`51729750` 字符
filename | string | 是 | 附件文件名<br>**示例值**："helloworld.txt"
is_inline | boolean | 否 | 是否为内联图片，true 表示是内联图片<br>**示例值**：false<br>**默认值**：`false`
cid | string | 否 | 内容 ID，HTML 中通过 cid: 协议引用该图片<br>**示例值**："image1@example.com"
dedupe_key | string | 否 | 去重键<br>**示例值**："abc-ddd-eee-fff-ggg"
head_from | mail_address | 否 | EML中发件人信息
name | string | 否 | 名称<br>**示例值**："Mike"

### 请求体示例
```json
{
    "subject": "邮件标题",
    "to": [
        {
            "mail_address": "user@xxx.xx",
            "name": "Mike"
        }
    ],
    "raw": "U3ViamVjdDogSGVsbG8hCkZyb206ICJtaWtlIiA8bWlrZUBtaWtlLmNvbT4KTWltZS1WZXJzaW9uOiAxLjAKQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvYWx0ZXJuYXRpdmU7CiBib3VuZGFyeT1iMjhmYTIyNGExZWU2ZDY3ZjE3OTViNGUxZDEwM2Q3MTBlNzM5ZWVmYjFmZjlmOWQ4NWI4M2NlOTRmMTEKRGF0ZTogV2VkLCAyMyBKdWwgMjAyNSAxNTo0NDoxOCArMDgwMApNZXNzYWdlLUlkOiA8bW9ja3V1aWRtZXNzYWdlX2lkQGxhcmsuY29tPgpUbzogImphY2siIDxqYWNrQGphY2suY29tPgoKLS1iMjhmYTIyNGExZWU2ZDY3ZjE3OTViNGUxZDEwM2Q3MTBlNzM5ZWVmYjFmZjlmOWQ4NWI4M2NlOTRmMTEKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogN2JpdApDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKCldlbGNvbWUgdG8gTGFyayBtYWlsIQotLWIyOGZhMjI0YTFlZTZkNjdmMTc5NWI0ZTFkMTAzZDcxMGU3MzllZWZiMWZmOWY5ZDg1YjgzY2U5NGYxMQo=",
    "cc": [
        {
            "mail_address": "user@xxx.xx",
            "name": "Mike"
        }
    ],
    "bcc": [
        {
            "mail_address": "user@xxx.xx",
            "name": "Mike"
        }
    ],
    "body_html": "xxxx",
    "body_plain_text": "xxxx",
    "attachments": [
        {
            "body": "aGVsbG8gd29ybGQK",
            "filename": "helloworld.txt",
            "is_inline": false,
            "cid": "image1@example.com"
        }
    ],
    "dedupe_key": "abc-ddd-eee-fff-ggg",
    "head_from": {
        "name": "Mike"
    }
}
```

## 响应

### 响应体

名称 | 类型 | 描述
---|---|---
code | int | 错误码，非 0 表示失败
msg | string | 错误描述
data | \- | \-
message_id | string | 邮件ID
thread_id | string | 会话ID

### 响应体示例
```json
{
    "code": 0,
    "msg": "success",
    "data": {
        "message_id": "48451e97-4743-4a55-a9a3-b5c656b69c05",
        "thread_id": "14151e97-4743-4a55-a9a3-b5c656b69c05"
    }
}
```

### 错误码

HTTP状态码 | 错误码 | 描述 | 排查建议
---|---|---|---
404 | 1234013 | user mailbox not found or user mailbox not active | 邮箱地址状态错误，请更换邮箱地址
403 | 1234017 | permission deny | 申请邮箱使用权限
400 | 1234008 | request parameter error | 请检查请求参数是否正确
400 | 1236001 | raw size over limit | 邮件大小超过限制，请减小邮件大小
429 | 1236006 | too many request | 同用户请勿并发请求
400 | 1236002 | invalid mime format | 非法MIME格式邮件，请检查邮件格式以及确保基于base64url编码
400 | 1236003 | the number of recipients exceeds the limit | 邮件收件人数量超过500限制，请减少邮件收件人
400 | 1236004 | the number of attachments exceeds the limit | 邮件附件数量超过500限制，请减少邮件附件数量
409 | 1236005 | send mail repeatedly | 重复发送邮件，请勿使用相同Message-ID发送邮件
429 | 1236007 | the daily number of emails sent by the user exceeds the limit | 用户每天发送邮件数量超过限制
429 | 1236008 | the number of external recipients the user sends messages to each day exceeds the limit | 用户每天发送邮件的外部收件人数量超过限制
429 | 1236009 | the number of external recipients the tenant sends messages to each day exceeds the limit | 企业每天发送邮件的外部收件人数量超过限制
429 | 1236010 | mail quota limit | 用户的发信请求被系统限流，请重试
429 | 1236012 | reach send mail restriction | 用户发送的邮件达到发信阈值限制
429 | 1236013 | tenant storage limit | 租户存储空间已满，无法发送更多邮件
400 | 1236014 | content risk | 由于邮件内容被识别为风险内容，邮件发送失败
400 | 1236017 | sender check fail | 邮件发件人检测失败，请检查发件人信息和状态
400 | 1236018 | receiver check fail | 邮件收件人检测失败，请检查收件人信息
500 | 1236019 | internal server error | 系统内部报错

