发送邮件
发送邮件
Warning: 该接口基于单个用户加锁,只能串行调用
Tip: 发送邮件使用 base64url 编码。与普通 base64 的区别是将「+/」替换为「-_」。 对于 Golang 使用 base64.URLEncoding。
请求
| 项目 | 值 |
|---|---|
| HTTP URL | https://open.feishu.cn/open-apis/mail/v1/user_mailboxes/:user_mailbox_id/messages/send |
| HTTP Method | POST |
| 接口频率限制 | 100 次/分钟 |
| 支持的应用类型 | custom |
| 权限要求 调用该 API 所需的权限。开启其中任意一项权限即可调用 | mail:user_mailbox.message:send 发送用户邮件 |
请求头
| 名称 | 类型 | 必填 | 描述 |
|---|---|---|---|
| Authorization | string | 是 | user_access_token 值格式:"Bearer access_token" 示例值:"Bearer u-7f1bcd13fc57d46bac21793a18e560" 了解更多:如何选择与获取 access token |
| Content-Type | string | 是 | 固定值:"application/json; charset=utf-8" |
路径参数
| 名称 | 类型 | 描述 |
|---|---|---|
user_mailbox_id | string | 用户邮箱地址 或 输入me代表当前调用接口用户 示例值:"user@xxx.xx 或 me" |
请求体
| 名称 | 类型 | 必填 | 描述 |
|---|---|---|---|
subject | string | 否 | 主题 示例值:"邮件标题" |
to | mail_address\[\] | 否 | 收件人 |
└ mail_address | string | 是 | 邮件地址 示例值:"user@xxx.xx" |
└ name | string | 否 | 名称 示例值:"Mike" |
raw | string | 否 | eml数据 示例值:"U3ViamVjdDogSGVsbG8hCkZyb206ICJtaWtlIiA8bWlrZUBtaWtlLmNvbT4KTWltZS1WZXJzaW9uOiAxLjAKQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvYWx0ZXJuYXRpdmU7CiBib3VuZGFyeT1iMjhmYTIyNGExZWU2ZDY3ZjE3OTViNGUxZDEwM2Q3MTBlNzM5ZWVmYjFmZjlmOWQ4NWI4M2NlOTRmMTEKRGF0ZTogV2VkLCAyMyBKdWwgMjAyNSAxNTo0NDoxOCArMDgwMApNZXNzYWdlLUlkOiA8bW9ja3V1aWRtZXNzYWdlX2lkQGxhcmsuY29tPgpUbzogImphY2siIDxqYWNrQGphY2suY29tPgoKLS1iMjhmYTIyNGExZWU2ZDY3ZjE3OTViNGUxZDEwM2Q3MTBlNzM5ZWVmYjFmZjlmOWQ4NWI4M2NlOTRmMTEKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogN2JpdApDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKCldlbGNvbWUgdG8gTGFyayBtYWlsIQotLWIyOGZhMjI0YTFlZTZkNjdmMTc5NWI0ZTFkMTAzZDcxMGU3MzllZWZiMWZmOWY5ZDg1YjgzY2U5NGYxMQo=" |
cc | mail_address\[\] | 否 | 抄送 |
└ mail_address | string | 是 | 邮件地址 示例值:"user@xxx.xx" |
└ name | string | 否 | 名称 示例值:"Mike" |
bcc | mail_address\[\] | 否 | 密送 |
└ mail_address | string | 是 | 邮件地址 示例值:"user@xxx.xx" |
└ name | string | 否 | 名称 示例值:"Mike" |
body_html | string | 否 | 正文 示例值:"xxxx" |
body_plain_text | string | 否 | 正文纯文本 示例值:"xxxx" |
attachments | attachment\[\] | 否 | 附件 |
└ body | string | 是 | 附件的正文,使用 base64url 编码(支持的文件最大 37MB) 示例值:"aGVsbG8gd29ybGQK" 数据校验规则: - 最大长度: 51729750 字符 |
└ filename | string | 是 | 附件文件名 示例值:"helloworld.txt" |
└ is_inline | boolean | 否 | 是否为内联图片,true 表示是内联图片 示例值:false 默认值: false |
└ cid | string | 否 | 内容 ID,HTML 中通过 cid: 协议引用该图片 示例值:"image1@example.com" |
dedupe_key | string | 否 | 去重键 示例值:"abc-ddd-eee-fff-ggg" |
head_from | mail_address | 否 | EML中发件人信息 |
└ name | string | 否 | 名称 示例值:"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 denied | 申请邮箱使用权限 |
| 400 | 1234008 | request parameter error | 请检查请求参数是否正确 |
| 400 | 1236001 | raw size over limit | 邮件大小超过限制,请减小邮件大小 |
| 429 | 1236006 | too many requests | 同用户请勿并发请求 |
| 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 failed | 邮件发件人检测失败,请检查发件人信息和状态 |
| 400 | 1236018 | receiver check failed | 邮件收件人检测失败,请检查收件人信息 |
| 500 | 1236019 | internal server error | 系统内部报错 |
