五、用户邮件接口¶
接口访问 URL:http://mail.demo.com/openapi.php
5.1 用户登录¶
| 参数 | 参数名称 | 参数说明 | 必须 | 样例 |
|---|---|---|---|---|
| method | 方法名 | login | Y | |
| user | 用户名 | 登录用户名 | Y | test |
| pass | 登录密码 | 登录密码 | Y | aYe_se683 |
登录成返回 sessid , 这是一个会话 token,以下所有操作接口都需要携带此 sessid 参数
登录成功返回值
{
"result": "ok",
"info":
{
“sessid”: "1a2db1b0edda735295508723d8c6a962",
“uid”: "test",
“email”: " test@cnu.com ",
“fullname”: "测试用户",
“mobile”: "13900000000",
“company”: "华兆科技",
“department”: "系统研发部",
“jobtitle”: "工程帅",
“office”: "",
“officephone”: "",
“homeaddress”: "",
“homephone”: ""
}
}
登录成功后,开发者一直可以使用此 sessid 进行操作其他接口。会话是有有效期限的,长 时间不操作会过期,生存时间与 Webmail 的会话时间一致(默认是 30 分钟)。
开发者可以在有效期内定时更新 session 保持一直有效。
| 参数 | 参数名称 | 参数说明 | 必须 | 样例 |
|---|---|---|---|---|
| method | 方法名 | updatesession | Y | |
| sessid | 登录sesssion | 登录成返回sessid | Y | 参考“5.1 用户登录” |
成功返回值
※可以直接重定向到 http://mail.demo.com/main.php?act=login&sessid=xxxxxxxxx xxxxxxxx 是登录成返回 sessid ,实现单点登录功能。
5.2 邮件夹操作¶
5.2.1 列邮件夹¶
| 参数 | 参数名称 | 参数说明 | 必须 | 样例 |
|---|---|---|---|---|
| method | 方法名 | folders | Y | |
| sessid | 登录session | 登录成返回sessid | Y | 参考“5.1 用户登录” |
成功返回值
5.2.2 新建邮件夹¶
| 参数 | 参数名称 | 参数说明 | 必须 | 样例 |
|---|---|---|---|---|
| method | 方法名 | folders.newfolder | Y | |
| sessid | 登录session | 登录成返回sessid | Y | 参考“5.1 用户登录” |
| newfolder | 新邮件夹名 | Y |
成功返回值
5.2.3 重命名邮件夹¶
| 参数 | 参数名称 | 参数说明 | 必须 | 样例 |
|---|---|---|---|---|
| method | 方法名 | folders.renamefolder | Y | |
| sessid | 登录session | 登录成返回sessid | Y | 参考“5.1 管理员登录” |
| folder | 要操作的邮件夹名 | Y | ||
| newfolder | 新邮件夹名 | Y |
成功返回值
5.2.4 删除邮件夹¶
| 参数 | 参数名称 | 参数说明 | 必须 | 样例 |
|---|---|---|---|---|
| method | 方法名 | folders.delfolder | Y | |
| sessid | 登录session | 登录成返回sessid | Y | 参考“5.1 用户登录” |
| folder | 要操作的邮件夹名 | Y |
成功返回值
5.2.5 清空邮件夹¶
| 参数 | 参数名称 | 参数说明 | 必须 | 样例 |
|---|---|---|---|---|
| method | 方法名 | folders.emptyfolder | Y | |
| sessid | 登录session | 登录成返回sessid | Y | 参考“5.1 用户登录” |
| folder | 要操作的邮件夹名 | Y |
成功返回值
5.3 邮件列表¶
5.3.1 邮件列表¶
| 参数 | 参数名称 | 参数说明 | 必须 | 样例 |
|---|---|---|---|---|
| method | 方法名 | msglist | Y | |
| sessid | 登录session | 登录成返回sessid | Y | 参考“5.1 用户登录” |
| folder | 文件夹 | 指定邮件夹 系统默认邮件夹 INBOX –收件箱 Sent –已发邮件 Draf –草稿箱 Trash –已删除 Spam –垃圾邮件夹 |
Y | |
| pag | 页码 | 分页序号,以1开始 | N |
成功返回值
{
"result": "ok",
"info":
{
“messagelist”: 邮件列表信息,
“totalpage”: 总分页数
“newmsg”: 新邮件数
“msgtotal”: 邮件总数
}
}
如果想显示某些特殊的读邮件列表
| 参数 | 参数名称 | 参数说明 | 必须 | 样例 |
|---|---|---|---|---|
| method | 方法名 | msglist.search | Y | |
| sessid | 登录session | 登录成返回sessid | Y | 参考“5.1 用户登录” |
| folder | 文件夹 | Y | ||
| pag | 页码 | 分页序号,以1开始 | N | |
| listype | 查看方式 | unread –未读邮件 read –已读邮件 answered –己回复邮件 forwarded –已转发邮件 fagged –星标邮件 |
N |
5.3.2 删除邮件¶
| 参数 | 参数名称 | 参数说明 | 必须 | 样例 |
|---|---|---|---|---|
| method | 方法名 | msglist.delete | Y | |
| sessid | 登录session | 登录成返回sessid | Y | 参考“5.1 用户登录” |
| folder | 文件夹 | Y | ||
| msgid | 邮件标识 | Y |
成功返回值
5.3.3 移动邮件¶
| 参数 | 参数名称 | 参数说明 | 必须 | 样例 |
|---|---|---|---|---|
| method | 方法名 | msglist. move | Y | |
| sessid | 登录session | 登录成返回sessid | Y | 参考“5.1 用户登录” |
| folder | 文件夹 | Y | ||
| msgid | 邮件标识 | Y | ||
| tofolder | 目标邮件夹 | Y |
成功返回值
5.3.4 置顶邮件¶
| 参数 | 参数名称 | 参数说明 | 必须 | 样例 |
|---|---|---|---|---|
| method | 方法名 | msglist.top | Y | |
| sessid | 登录session | 登录成返回sessid | Y | 参考“5.1 用户登录” |
| folder | 文件夹 | Y | ||
| msgid | 邮件标识 | Y |
成功返回值
5.3.5 取消置顶邮件¶
| 参数 | 参数名称 | 参数说明 | 必须 | 样例 |
|---|---|---|---|---|
| method | 方法名 | msglist.untop | Y | |
| sessid | 登录session | 登录成返回sessid | Y | 参考“5.1 用户登录” |
| folder | 文件夹 | Y | ||
| msgid | 邮件标识 | Y |
成功返回值
5.3.6 设置已读标记¶
| 参数 | 参数名称 | 参数说明 | 必须 | 样例 |
|---|---|---|---|---|
| method | 方法名 | msglist.read | Y | |
| sessid | 登录session | 登录成返回sessid | Y | 参考“5.1 用户登录” |
| folder | 文件夹 | Y | ||
| msgid | 邮件标识 | Y |
成功返回值
5.3.7 设置未读标记¶
| 参数 | 参数名称 | 参数说明 | 必须 | 样例 |
|---|---|---|---|---|
| method | 方法名 | msglist.unread | Y | |
| sessid | 登录session | 登录成返回sessid | Y | 参考“5.1 用户登录” |
| folder | 文件夹 | Y | ||
| msgid | 邮件标识 | Y |
成功返回值
5.3.8 设置星标邮件¶
| 参数 | 参数名称 | 参数说明 | 必须 | 样例 |
|---|---|---|---|---|
| method | 方法名 | msglist.fag | Y | |
| sessid | 登录session | 登录成返回sessid | Y | 参考“5.1 用户登录” |
| folder | 文件夹 | Y | ||
| msgid | 邮件标识 | Y |
成功返回值
5.3.9 取消星标邮件¶
| 参数 | 参数名称 | 参数说明 | 必须 | 样例 |
|---|---|---|---|---|
| method | 方法名 | msglist.unfag | Y | |
| sessid | 登录session | 登录成返回sessid | Y | 参考“5.1 用户登录” |
| folder | 文件夹 | Y | ||
| msgid | 邮件标识 | Y |
成功返回值
5.4 文件夹未读邮件数¶
| 参数 | 参数名称 | 参数说明 | 必须 | 样例 |
|---|---|---|---|---|
| method | 方法名 | msgnum | Y | |
| sessid | 登录session | 登录成返回sessid | Y | 参考“5.1 用户登录” |
成功返回值
5.5 阅读邮件¶
| 参数 | 参数名称 | 参数说明 | 必须 | 样例 |
|---|---|---|---|---|
| method | 方法名 | readmsg | Y | |
| sessid | 登录session | 登录成返回sessid | Y | 参考“5.1 用户登录” |
| folder | 文件夹 | Y | ||
| msgid | 邮件标识 | Y |
成功返回值
{
"result": "ok",
"info":
{
“from”: 发件人信息,
“reply-to”: 回复信息
“to”: 收件人信息
“cc”: 抄送信息
“subject”: 主题
“date”: 发件日期
“body”: 信体内容
“attachment”: 邮件附件
“memo”: 邮件备注信息
}
}
5.6 发送邮件¶
| 参数 | 参数名称 | 参数说明 | 必须 | 样例 |
|---|---|---|---|---|
| method | 方法名 | newmsg.send | Y | |
| sessid | 登录session | 登录成返回sessid | Y | 参考“5.1 用户登录” |
| to | 收件人 | 多个地址用分号(;)分隔 | Y | |
| cc | 抄送 | 多个地址用分号(;)分隔 | N | |
| subject | 邮件主题 | Y | ||
| msgbody | 邮件信体 | Y | ||
| ishtml | Html邮件 | 0 -文本邮件;1 – HTML邮件 | N | |
| priority | 优先级 | 0 -正常;1 -优先 | N | |
| requestnotfy | 请求阅读回条 | 0 -不需要;1 -需要 | N |
成功返回值
如果要发送带附件的邮件,要先重置写邮件缓存,然后上传附件,最后再发送邮件。重置写邮件缓存,如要发送含附件邮件建议先进行重置操作。
| 参数 | 参数名称 | 参数说明 | 必须 | 样例 |
|---|---|---|---|---|
| method | 方法名 | newmsg.reset | Y | |
| sessid | 登录session | 登录成返回sessid | Y | 参考“5.1 用户登录” |
成功返回值
上传附件,可以一次上传多个文件,也可以分多次上传
| 参数 | 参数名称 | 参数说明 | 必须 | 样例 |
|---|---|---|---|---|
| method | 方法名 | upload.upload | Y | |
| sessid | 登录session | 登录成返回sessid | Y | 参考“5.1 用户登录” |
| atachfle | 上传文件 | 构造 multpart/form-data 格式的内容提交 atachfle 值不需要作为 url 参数生成 sign |
Y |
成功返回值
{
"result": "ok",
“list”:[
{
"name":"readme.txt",
"localname":"C:\Winmail\server\webmail\temp\_attachments\test_baa065a52e3859e4e1a0ee2ca9188713_3a077176425dd745941ee40cd3dc5914",
"type":"text/plain",
"size":156894
},
{
"name":" 20180705141449.jpg",
"localname":"C:\Winmail\server\webmail\temp\_attachments\test_baa065a52e3859e4e1a0ee2ca9188713_052c4b360ca824741aaa873077e8570d",
"type":"image/jpg",
"size": 54954
}
]
}
multipart/form-data介绍 https://www.ietf.org/rfc/rfc1867.txt
http 请求中的 multipart/form-data,它会将表单的数据处理为一条消息,以标签为单元,用分隔符分开。既可以上传键值对,也可以上传文件。当上传的字段是文件时,会有 Content-Type 来表名文件类型;content-disposition,用来说明字段的一些信息;用 boundary 分离。
删除某封附件
| 参数 | 参数名称 | 参数说明 | 必须 | 样例 |
|---|---|---|---|---|
| method | 方法名 | upload.delete | Y | |
| sessid | 登录session | 登录成返回sessid | Y | 参考“5.1 用户登录” |
| attachid | 附件ID | 上传后返回的附件数组, 所删除附件在数组中序号,序号以 0 开始 | Y |
成功返回值
5.7 个人地址簿¶
5.7.1 列地址簿¶
| 参数 | 参数名称 | 参数说明 | 必须 | 样例 |
|---|---|---|---|---|
| method | 方法名 | addressbook | Y | |
| sessid | 登录session | 登录成返回sessid | Y | 参考“5.1 用户登录” |
| pag | 页码 | 分页序号,以0开始 | N |
成功返回值
{
"result": "ok",
"info":
{
“group”: 地址组列表,
“address”: 联系人列表
“totalpage”: 总页数
“addresscount”: 邮件总数
}
}
5.7.2 增加联系人¶
| 参数 | 参数名称 | 参数说明 | 必须 | 样例 |
|---|---|---|---|---|
| method | 方法名 | addressbook.addcontact | Y | |
| sessid | 登录session | 登录成返回sessid | Y | 参考“5.1 用户登录” |
| name | 姓名 | Y | ||
| 邮件地址 | Y | |||
| mobile | 手机 | N | ||
| phone | 电话 | N | ||
| fax | 传真 | N | ||
| address | 联系地址 | N | ||
| zipcode | 区号 | N | ||
| company | 工作单位 | N | ||
| depart | 部门 | N | ||
| jobttle | 职位 | N | ||
| homephone | 家庭电话 | N | ||
| homeaddress | 家庭地址 | N | ||
| homezipcode | 家庭区号 | N | ||
| im | 即时通信 | N | ||
| url | 个人网址 | N | ||
| email1 | 备份邮箱地址 | N | ||
| birthday | 生日 | N | ||
| memo | 备注 | N |
成功返回值
5.7.3 修改联系人¶
| 参数 | 参数名称 | 参数说明 | 必须 | 样例 |
|---|---|---|---|---|
| method | 方法名 | addressbook.savecontact | Y | |
| sessid | 登录session | 登录成返回sessid | Y | 参考“5.1 用户登录 |
| id | 联系人标识 | Y | ||
| name | 姓名 | Y | ||
| 邮件地址 | Y | |||
| mobile | 手机 | N | ||
| phone | 电话 | N | ||
| fax | 传真 | N | ||
| address | 联系地址 | N | ||
| zipcode | 区号 | N | ||
| company | 工作单位 | N | ||
| depart | 部门 | N | ||
| jobttle | 职位 | N | ||
| homephone | 家庭电话 | N | ||
| homeaddress | 家庭地址 | N | ||
| homezipcode | 家庭区号 | N | ||
| im | 即时通信 | N | ||
| url | 个人网址 | N | ||
| email1 | 备份邮箱地址 | N | ||
| birthday | 生日 | N | ||
| memo | 备注 | N |
成功返回值
5.7.4 删除联系人¶
| 参数 | 参数名称 | 参数说明 | 必须 | 样例 | |
|---|---|---|---|---|---|
| method | 方法名 | addressbook.delecontact | Y | ||
| sessid | 登录session | 登录成返回 sessid | Y | 参考”5.1 用户登录” | |
| id | 联系人标识 | Y |
成功返回值
5.7.5 增加地址组¶
| 参数 | 参数名称 | 参数说明 | 必须 | 样例 | |
|---|---|---|---|---|---|
| method | 方法名 | addressbook.addgroup | Y | ||
| sessid | 登录session | 登录成返回sessid | Y | 参考”5.1 用户登录” | |
| name | 分组名称 | Y | |||
| member | 组成员 | 多个联系人地址用分号(;)分隔 | Y |
成功返回值
5.7.6 修改地址组¶
| 参数 | 参数名称 | 参数说明 | 必须 | 样例 |
|---|---|---|---|---|
| method | 方法名 | addressbook.savegroup | Y | |
| sessid | 登录session | 登录成返回sessid | Y | 参考“5.1 用户登录” |
| id | 组标识 | Y | ||
| name | 分组名称 | Y | ||
| member | 组成员 | 多个联系人地址用分号(;)分隔 | Y |
成功返回值
5.7.7 删除地址组¶
| 参数 | 参数名称 | 参数说明 | 必须 | 样例 | |
|---|---|---|---|---|---|
| method | 方法名 | addressbook.delegroup | Y | ||
| sessid | 登录session | 登录成返回sessid | Y | 参考”5.1 用户登录” | |
| id | 组标识 | Y |
成功返回值
