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"
    }