list mail¶
- interface address:
/api/mail/list
- HTTP request method:
GET
- request params:
label (query, optional): label name, such as inbox / sent / drafts / trash / starred / all / unread / important, etc. Defaults to inbox
page (query, optional): page number, defaults to 1
page_count (query, optional): number of items per page, defaults to 100
- response code:
common response
example:
curl -X GET "$BASE_URL/api/mail/list?label=inbox&page=1&page_count=20"
response example:
JSON:
{ "data": { "list": [ { "id": "1", "from": "", "to": "", "subject": "", "date": "", "labels": [] } ] }, "code": 0, "message": "OK", "ts": 1234567890 }
get mail detail¶
- interface address:
/api/mail/detail/:id
- HTTP request method:
GET
- request params:
id (path): mail ID
- response code:
common response
example:
curl -X GET "$BASE_URL/api/mail/detail/1"
response example:
JSON:
{ "data": { "id": "1", "from": "", "to": "", "subject": "", "content": "", "labels": [] }, "code": 0, "message": "OK", "ts": 1234567890 }
get mail info¶
- interface address:
/api/mail/info/:id
- HTTP request method:
GET
- request params:
id (path): mail ID
- response code:
common response
example:
curl -X GET "$BASE_URL/api/mail/info/1"
response example:
JSON:
{ "data": {}, "code": 0, "message": "OK" }
get mail original content¶
- interface address:
/api/mail/original/:id
- HTTP request method:
GET
- request params:
id (path): mail ID
- response code:
common response
example:
curl -X GET "$BASE_URL/api/mail/original/1"
response example:
JSON:
{ "data": {}, "code": 0, "message": "OK" }
search mail¶
- interface address:
/api/mail/search
- HTTP request method:
POST
- request params:
from (form, optional): sender
to (form, optional): recipient
subject (form, optional): subject
include (form, optional): keyword to include
exclude (form, optional): keyword to exclude
before (form, optional): before date, format 2006-01-02
after (form, optional): after date, format 2006-01-02
label_id (form, optional): label ID, multiple values separated by commas
larger_size (form, optional): larger than size in bytes
smaller_size (form, optional): smaller than size in bytes
page (form, optional): page number
page_size (form, optional): number of items per page
- response code:
common response
example:
curl -X POST "$BASE_URL/api/mail/search" -d "subject=test&page=1&page_size=20"
response example:
JSON:
{ "data": { "list": [] }, "code": 0, "message": "OK", "ts": 1234567890 }
modify mail read state¶
- interface address:
/api/mail/readstate
- HTTP request method:
POST
- request params:
id (form, required): mail ID, multiple values separated by commas
state (form, required): read state, true/false
- response code:
common response
example:
curl -X POST "$BASE_URL/api/mail/readstate" -d "id=1,2,3&state=true"
response example:
JSON:
{ "code": 0, "message": "更新成功" }
modify mail starred state¶
- interface address:
/api/mail/starredstate
- HTTP request method:
POST
- request params:
id (form, required): mail ID, multiple values separated by commas
starred (form, required): starred state, true/false
- response code:
common response
example:
curl -X POST "$BASE_URL/api/mail/starredstate" -d "id=1,2&starred=true"
response example:
JSON:
{ "code": 0, "message": "OK" }
modify mail important state¶
- interface address:
/api/mail/importantstate
- HTTP request method:
POST
- request params:
id (form, required): mail ID, multiple values separated by commas
important (form, required): important state, true/false
- response code:
common response
example:
curl -X POST "$BASE_URL/api/mail/importantstate" -d "id=1&important=true"
response example:
JSON:
{ "code": 0, "message": "OK" }
delete mail¶
- interface address:
/api/mail/delete
- HTTP request method:
POST
- request params:
id (form, required): mail ID, multiple values separated by commas (moves them to trash)
- response code:
common response
example:
curl -X POST "$BASE_URL/api/mail/delete" -d "id=1,2,3"
response example:
JSON:
{ "code": 0, "message": "OK" }
permanently delete mail¶
- interface address:
/api/mail/foreverdelete
- HTTP request method:
POST
- request params:
id (form, required): mail ID, multiple values separated by commas
- response code:
common response
example:
curl -X POST "$BASE_URL/api/mail/foreverdelete" -d "id=1,2"
response example:
JSON:
{ "code": 0, "message": "OK" }
archive mail¶
- interface address:
/api/mail/archive
- HTTP request method:
POST
- request params:
id (form, required): mail ID, multiple values separated by commas
- response code:
common response
example:
curl -X POST "$BASE_URL/api/mail/archive" -d "id=1,2"
response example:
JSON:
{ "code": 0, "message": "OK" }
unarchive mail¶
- interface address:
/api/mail/unarchive
- HTTP request method:
POST
- request params:
id (form, required): mail ID, multiple values separated by commas
- response code:
common response
example:
curl -X POST "$BASE_URL/api/mail/unarchive" -d "id=1,2"
response example:
JSON:
{ "code": 0, "message": "OK" }
move mail to label group¶
- interface address:
/api/mail/movelabel
- HTTP request method:
POST
- request params:
id (form, required): mail ID, multiple values separated by commas
from_id (form, required): source label ID
to_id (form, required): target label ID
- response code:
common response
example:
curl -X POST "$BASE_URL/api/mail/movelabel" -d "id=1,2&from_id=1&to_id=2"
response example:
JSON:
{ "code": 0, "message": "OK" }
delete mail label group¶
- interface address:
/api/mail/deletelabel
- HTTP request method:
POST
- request params:
id (form, required): mail ID, multiple values separated by commas
label_id (form, required): label ID to remove
- response code:
common response
example:
curl -X POST "$BASE_URL/api/mail/deletelabel" -d "id=1&label_id=2"
response example:
JSON:
{ "code": 0, "message": "OK" }
apply mail label group¶
- interface address:
/api/mail/applylabel
- HTTP request method:
POST
- request params:
id (form, required): mail ID, multiple values separated by commas
label_id (form, required): label ID to apply
- response code:
common response
example:
curl -X POST "$BASE_URL/api/mail/applylabel" -d "id=1,2&label_id=3"
response example:
JSON:
{ "code": 0, "message": "OK" }
send mail¶
- interface address:
/api/mail/send/:domain
- HTTP request method:
POST
- request params:
domain (path): sender domain
from (form): sender address
to (form): recipient, multiple values separated by commas
cc (form, optional): CC
bcc (form, optional): BCC
subject (form): subject
content (form): body content
Other MIME-related fields are passed as needed
- response code:
common response
example:
curl -X POST "$BASE_URL/api/mail/send/example.com" -d "from=user@example.com&to=to@example.com&subject=test&content=body"
response example:
JSON:
{ "code": 0, "message": "OK", "data": {} }
upload as attachment¶
- interface address:
/api/mail/asattachment
- HTTP request method:
POST
- request params:
multipart/form-data file upload
- response code:
common response
example:
curl -X POST "$BASE_URL/api/mail/asattachment" -F "file=@/path/to/file"
response example:
JSON:
{ "code": 0, "data": {}, "message": "OK" }
file upload (generic)¶
- interface address:
/api/file/upload
- HTTP request method:
POST
- request params:
multipart/form-data file upload
- response code:
common response
example:
curl -X POST "$BASE_URL/api/file/upload" -F "file=@/path/to/file"
response example:
JSON:
{ "code": 0, "data": {}, "message": "OK" }
list label¶
- interface address:
/api/label/list
- HTTP request method:
GET
- request params:
type (query, optional): filter type
- response code:
common response
example:
curl -X GET "$BASE_URL/api/label/list"
response example:
JSON:
{ "data": [ { "id": "1", "name": "inbox", "color": "", "labelListDisplay": "1", "mailListDisplay": "1", "imapDisplay": "1" } ], "code": 0, "message": "OK", "ts": 1234567890 }
create label¶
- interface address:
/api/label/create
- HTTP request method:
POST
- request params:
name (form, required): label name
See the implementation for other optional fields
- response code:
common response
example:
curl -X POST "$BASE_URL/api/label/create" -d "name=MyLabel"
response example:
JSON:
{ "code": 0, "message": "OK", "data": {} }
update label state¶
- interface address:
/api/label/updatestate
- HTTP request method:
POST
- request params:
See the implementation
- response code:
common response
example:
curl -X POST "$BASE_URL/api/label/updatestate"
response example:
JSON:
{ "code": 0, "message": "OK" }
delete label¶
- interface address:
/api/label/delete
- HTTP request method:
POST
- request params:
id (form, required): label ID
- response code:
common response
example:
curl -X POST "$BASE_URL/api/label/delete" -d "id=1"
response example:
JSON:
{ "code": 0, "message": "OK" }