应用可以通过该接口发送会议邮件。
请求方式: POST(HTTPS)
请求地址: https://qyapi.weixin.qq.com/cgi-bin/exmail/app/compose_send?access_token=ACCESS_TOKEN
请求包体
{
"to": {
"emails": [
"word@bgjkcsqy.wecom.work",
"jyan1@tiyantest.wang",
"zorocheng@tencnet.com",
"zoro@bgjkcsqy.wecom.work"
],
"userids": [
"william"
]
},
"subject": "邮件标题, 同时也是会议标题",
"content": "邮件正文,同时是会议描述",
"schedule": {
"method": "request",
"location": "这是会议地点",
"start_time": 1669278600,
"end_time": 1669282200,
"reminders": {
"is_remind": 1,
"remind_before_event_mins": 15,
"is_repeat": 1,
"is_custom_repeat": 1,
"timezone": 8,
"repeat_interval": 1,
"repeat_type": 1,
"repeat_day_of_week": [
4,
5
],
"repeat_day_of_month": [
],
"repeat_week_of_month": [
],
"repeat_month_of_year": [
],
"repeat_until": 1670745600
}
},
"meeting": {
"option": {
"password": "123456",
"auto_record": 2,
"enable_waiting_room": true,
"allow_enter_before_host": true,
"enter_restraint": 0,
"enable_screen_watermark": true,
"enable_enter_mute":0,
"remind_scope": 2,
"water_mark_type": 0
},
"hosts": {
"userids": [
"zoro"
]
},
"meeting_admins": {
"userids": [
"zoro"
]
}
},
"enable_id_trans":1
}
参数说明
参数 | 必须 | 类型 | 说明 |
---|---|---|---|
to | 是 | obj | 收件人,to.emails 和 to.userids 至少传一个 |
to.emails | 否 | string[] | 收件人,邮箱地址 |
to.userids | 否 | string[] | 收件人,企业内成员的userid |
cc | 否 | obj | 抄送 |
cc.emails | 否 | string[] | 抄送人,邮箱地址 |
cc.userids | 否 | string[] | 抄送人,企业内成员的userid |
bcc | 否 | obj | 密送 |
bcc.emails | 否 | string[] | 密送人,邮箱地址 |
bcc.userids | 否 | string[] | 密送人,企业内成员的userid |
subject | 是 | string | 邮件标题,同时也是会议标题 |
content | 是 | string | 邮件正文,同时是会议描述 |
attachment_list | 否 | obj[] | 附件相关 |
attachment_list[].file_name | 是 | string | 文件名 |
attachment_list[].content | 是 | string | 文件内容(base64编码),所有附件加正文的大小不允许超过50M, 且附件个数不能超过200个 |
content_type | 否 | string | 内容类型 html,text(默认是html) |
schedule | 是 | obj | 会议相关数据,发会议邮件都必须带上这个字段 |
schedule.schedule_id | 否 | string | 会议ID (修改/取消会议必须带上schedule_id) |
schedule.method | 否 | string | 会议方法: request-请求(不传schedule_id时是创建会议,传了是修改会议) cancel-取消会议(必须带上schedule_id) 默认为request |
schedule.location | 否 | string | 地点 |
schedule.start_time | 是 | int | 会议开始时间,Unix时间戳 |
schedule.end_time | 是 | int | 会议结束时间,Unix时间戳 |
schedule.reminders | 否 | obj | 重复和提醒相关字段 |
schedule.reminders.is_remind | 否 | int | 是否有提醒 0-不提醒 1-提醒 |
schedule.reminders.remind_before_event_mins | 否 | int | 会议开始(start_time)前多少分钟提醒,当is_remind=1时有效。例如: 15表示会议开始前15分钟提醒 -15表示会议开始后15分钟提醒 |
schedule.reminders.timezone | 否 | int | 时区。UTC偏移量表示(即偏离零时区的小时数),东区为正数,西区为负数。 例如:+8 表示北京时间东八区 默认为北京时间东八区 取值范围:-12 ~ +12 |
schedule.reminders.is_repeat | 否 | int | 是否重复 0-否 1-是 |
schedule.reminders.is_custom_repeat | 否 | int | 是否自定义重复 0-否 1-是。当is_repeat为1时有效。 |
schedule.reminders.repeat_type | 否 | int | 重复类型,当is_repeat=1时有效。目前支持如下类型: 0 - 每日 1 - 每周 2 - 每月 5 - 每年 |
schedule.reminders.repeat_interval | 否 | int | 重复间隔 仅当指定为自定义重复时有效,该字段随repeat_type不同而含义不同 例如: repeat_interval指定为2,repeat_type指定为每周重复,那么每2周重复一次; repeat_interval指定为2,repeat_type指定为每月重复,那么每2月重复一次 |
schedule.reminders.repeat_day_of_week | 否 | int[] | 每周周几重复 仅当指定为自定义重复且重复类型为每周时有效 取值范围:1 ~ 7,分别表示周一至周日 |
schedule.reminders.repeat_day_of_month | 否 | int[] | 每月哪几天重复 仅当指定为自定义重复, 且重复类型为每月或每年时有效 取值范围:1 ~ 31,分别表示1~31号 |
schedule.reminders.repeat_month_of_year | 否 | int[] | 每年哪几个月重复 仅当指定为自定义重复且重复类型为每年时有效 取值范围:1 ~ 12,分别表示 1月 - 12月(每年重复需要repeat_month_of_year和repeat_day_of_month来指定某一天) |
schedule.reminders.repeat_until | 否 | int | 重复结束时刻,Unix时间戳,当is_repeat=1时有效。不填或填0表示一直重复 |
meeting | 否 | obj | 会议相关,会议邮件必填,且必须同时带上schedule,会议的基本设置放在schedule里 |
meeting.hosts | 否 | obj | 会议主持人列表,最多10个。定义见收件人字段,只支持填userid |
meeting.meeting_admins | 是 | obj | 会议管理员字段, , 仅可指定1人,只支持传userid,必须是同企业的用户,且在参与人中 |
meeting.option | 否 | obj | 会议相关设置 |
meeting.option.password | 否 | string | 入会密码,仅可输入4-6位纯数字 |
meeting.option.auto_record | 否 | int | 是否自动录制 0:未开启自动录制,1:开启自动本地录制,2:开启自动云录制;默认不开启 |
meeting.option.enable_waiting_room | 否 | bool | 是否开启等候室 false:不开启等候室;true:开启等候室;默认不开 |
meeting.option.allow_enter_before_host | 否 | bool | 是否允许成员在主持人进会前加入。 true:允许;false:不允许。默认允许 |
meeting.option.enter_restraint | 否 | int | 是否限制成员入会 0:所有人可入会 2:仅企业内部用户可入会;默认所有人可入会 |
meeting.option.enable_screen_watermark | 否 | bool | 是否开启屏幕水印 true:开启;false:不开启。默认不开启 |
meeting.option.enable_enter_mute | 否 | int | 成员入会时是否静音 1:开启;0:关闭;2:超过6人后自动开启静音。默认超过6人自动开启静音 |
meeting.option.remind_scope | 否 | int | 会议开始时是否提醒 1:不提醒 2:仅提醒主持人 3:提醒所有成员入会; 默认仅提醒主持人 |
meeting.option.water_mark_type | 否 | int | 水印类型 0:单排水印 1:多排水印;默认单排水印 |
enable_id_trans | 否 | uint32 | 表示是否开启id转译,0表示否,1表示是,默认0。仅第三方应用需要用到,企业自建应用可以忽略。 目前仅subject、content、attachment_list[].file_name字段支持转译。 |
关于自定义重复的说明:
is_custom_repeat 如果为0,那么系统会根据 start_time 和 repeat_type 来自动计算下一次重复的时间,例如:
start_time 为本周周三8点整,repeat_type 为每周重复,那么每周三8点整重复;
start_time 为本月3号10点整,repeat_type 为每月重复,那么每月3号10点整重复;
如果 is_custom_repeat 指定为1,那么可以配合 repeat_day_of_week 或 repeat_day_of_month 特别指定周几或几号重复,且可以使用 repeat_interval 指定重复间隔
id转译模版语法
$departmentName=DEPARTMENT_ID$
$userName=USERID$
$userAlias=USERID$
$userAliasOrName=USERID$
其中 DEPARTMENT_ID 是数字类型的部门id,USERID 是成员账号。
譬如,
将$departmentName=1$
替换成部门id为1
对应的部门名,如“企业微信部”;
将$userName=lisi007$
替换成userid为lisi007
对应的用户姓名,如“李四”;
将$userAlias=lisi007$
替换成userid为lisi007
对应的用户别名,如“lisi”;
将$userAliasOrName=lisi007$
替换成userid为lisi007
对应的用户别名或姓名,别名优先级高于姓名,如"lisi";
若输入的模板不符合语法或无效的userid或者部门ID,则不替换该项内容,保留原样
转译userAlias时,如果用户没有别名,则不替换该项内容,保留原样
转译userAliasOrName时,如果用户有别名,则替换为别名;否则,将替换为姓名
权限说明
返回示例
{
"errcode": 0,
"errmsg": "ok"
}
参数说明
参数 | 类型 | 说明 |
---|---|---|
errcode | int32 | 返回码 |
errmsg | string | 对返回码的文本描述内容 |