FoldersGetList
Return list of folders available in specific account.
Request Item | Type | Sample value | Description |
AccountID | int | 1 | ID of account folders are retrieved for |
Action | string | "FoldersGetList" | |
AuthToken | string | "89e307c653d701c17d61f2f116dba618” | string obtained with SystemLogin. Not needed if client supports cookies. |
Token | string | "169874786e1d429e20fd993800a8c08c" | |
Sample response:
{
"Action":"FoldersGetList",
"AccountID":1,
"Result":
{
"@Object":"Collection/FolderCollection",
"@Count":40,
"@Collection":
[
{
"@Object":"Object/Folder",
"Type":1,
"Name":"INBOX",
"FullName":"INBOX",
"FullNameRaw":"INBOX",
"FullNameHash":"7e33429f656f1e6e9d79b29c3f82c57e",
"Delimiter":"/",
"IsSubscribed":true,
"IsSelectable":true,
"Exists":true,
"Extended":null,
"NamespaceFolder":false,
"SubFolders":null
},
{
"@Object":"Object/Folder",
"Type":2,
"Name":"AfterLogicSent",
"FullName":"AfterLogicSent",
"FullNameRaw":"AfterLogicSent",
"FullNameHash":"d0f0107b8fff514be25a5c88e0e30117",
"Delimiter":"/",
"IsSubscribed":true,
"IsSelectable":true,
"Exists":true,
"Extended":null,
"NamespaceFolder":false,
"SubFolders":
{
"@Object":"Collection/FolderCollection",
"@Count":3,"@Collection":
[
{
"@Object":"Object/Folder",
"Type":10,
"Name":"????",
"FullName":"AfterLogicSent/????",
"FullNameRaw":"AfterLogicSent/&BEIENQRBBEI-",
"FullNameHash":"abda7ec45937220be7c2e0c7db45690b",
"Delimiter":"/",
"IsSubscribed":true,
"IsSelectable":true,
"Exists":true,
"Extended":null,
"NamespaceFolder":false,
"SubFolders":null
}
],
"Namespace":""
}
}
],
"Namespace":""
},
"@Time":3.2817389965057
}
Depending on mail server, Extended field may contain information on current status of the folder:
- hash which is changed whenever message list is updated;
- UID which is assigned for next message added to folder;
- number of all and unread messages in folder.
If this field contains null, this information is retrieved with FoldersGetRelevantInformation request.
FoldersGetRelevantInformation
This request is used for retrieving basic information on folders, if FoldersGetList request returned null value for Extended parameter, and for subsequent checks whether folder was updated.
Request Item | Type | Sample value | Description |
AccountID | int | 1 | ID of the account |
Action | string | "FoldersGetRelevantInformation" | |
AuthToken | string | "89e307c653d701c17d61f2f116dba618” | string obtained with SystemLogin. Not needed if client supports cookies. |
Folders | array | ["INBOX", "AfterLogicSent", "AfterLogicSent/&BEIENQRBBEI-"] | array of FullNameRaw names of folders data to be retrieved for. Initially, } requests data on all folders, subsequently - only for those which require status check. FullNameRaw - parameter from response to FoldersGetList request. |
InboxUidnext | string | "" | optional; UID assigned to next message in Inbox, used to determine if there were new message in Inbox (new, not unread) - and if yes, display notification on that. |
Token | string | "169874786e1d429e20fd993800a8c08c" | |
Sample response:
{
"Action":"FoldersGetRelevantInformation",
"AccountID":1,
"Result":
{
"Counts":
{
"AfterLogicSent":[67,0,"1623","d77cb96b8b025bcaa2edfa25a42ff38d"],
"AfterLogicSent/Customers":[58,0,"63","c8f5f40cf5a6bb323db9d64846d0fc87"],
"INBOX":[339,0,"11788","ad05dc5ecb61b2d18983ebbfacb6bb30"]
},
"New":[]
},
"@Time":2.4511110782623
}
MessagesGetList
Request for retrieving a list of messages in a folder. It supports filtering and search.
Request Item | Type | Sample value | Description |
AccountID | int | 1 | ID of the account |
Action | string | "MessagesGetList" | |
AuthToken | string | "89e307c653d701c17d61f2f116dba618” | string obtained with SystemLogin. Not needed if client supports cookies. |
Filters | string | "" | optional "" - no filtering, "unseen" - unread only, "flagged" - starred only |
Folder | string | "INBOX" | FullNameRaw of the folder we retrieve message list for FullNameRaw - parameter from response to FoldersGetList request. |
InboxUidnext | string | "" | optional |
Limit | int | 10 | number of messages to be returned |
Offset | int | 0 | offset for message list |
Search | string | "" | optional; search string |
Token | string | "169874786e1d429e20fd993800a8c08c" | |
UseThreads | int | 0 | optional; 1 if threads should be used, 0 otherwise. |
Sample response:
{
"Action":"MessagesGetList",
"AccountID":1,
"Result":
{
"@Object":"Collection\/MessageCollection",
"@Count":10,
"@Collection":
[
{
"@Object":"Object\/MessageListItem",
"Folder":"INBOX",
"Uid":11800,
"Subject":"Settings - BUG - \u041e\u0447\u0438\u0449\u0430\u044e\u0442\u0441\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0430\u043a\u043a\u0430\u0443\u043d\u0442\u0430 [Proj 7.6 (\u0410\u043f\u0440\u0435\u043b\u044c 2015)]",
"MessageId":"<972992e9d3b51c38806cd9f3ab27a105@asana.com>",
"Size":42291,
"TextSize":13880,
"InternalTimeStampInUTC":1428005433,
"ReceivedOrDateTimeStampInUTC":1428005432,
"TimeStampInUTC":1428005433,
"From":
[
{
"@Object":"Object\/Email",
"DisplayName":"Hisname",
"Email":"reply-d23778051e01e1545@asana.com"
}
],
"To":
[
{
"@Object":"Object\/Email",
"DisplayName":"Myname",
"Email":"myemail@afterlogic.com"
}
],
"Cc":null,
"Bcc":null,
"Sender":null,
"ReplyTo":
[
{
"@Object":"Object\/Email",
"DisplayName":"",
"Email":"2.3074061025ml88uc@mail.asana.com"
}
],
"IsSeen":true,
"IsFlagged":false,
"IsAnswered":false,
"IsForwarded":false,
"HasAttachments":false,
"HasVcardAttachment":false,
"HasIcalAttachment":false,
"Priority":3,
"DraftInfo":null,
"Sensitivity":0,
"TrimmedTextSize":13880,
"Hash":"A3WxjSm50Oi77ZGz5NDPioaDrR4FiHyE6IJZpYtvXf7BODBsyMJx7oYSoHPe5Lx8oqJ59NASlyUApe5xgnnmuV9IE1uVPTQHb4l5-1Weh42Pf22h2rSndFs9xuiUSgMtV7hTOX3B9mdaRzgZ5r4p8k7UU1fTkGW4_M-xYVbnQ0uEdmCwr7XSEJTZeJlA19ihDv7I8MgzmCAPqvHSHOoAj8eqLngJaq3O8thzG-s6dWGZn1IC_bbt5wOUcyPketo2bteIXumOagXqvEPx_DJ7AaLikhK0JszGmLnjjUIrluP3ik1unaI4zZzaawXXO08o",
"Threads":[11799,11798,11797,11796],
"Custom":[]
},
...
],
"Uids":[11800,11795,11794,11792,11790,11788,11787,11786,11785,11783],
"UidNext":"11801",
"FolderHash":"3e570121604405c737cb166194775618",
"MessageCount":351,
"MessageUnseenCount":0,
"MessageResultCount":169,
"FolderName":"INBOX",
"Offset":0,
"Limit":10,
"Search":"",
"Filters":"",
"New":[]
},
"@Time":3.5820579528809
}
MessageGet
Retrieving data for a message with specific UID.
Request Item | Type | Sample value | Description |
AccountID | int | 1 | ID of account |
Action | string | "MessageGet" | |
AuthToken | string | "89e307c653d701c17d61f2f116dba618” | string obtained with SystemLogin. Not needed if client supports cookies. |
Folder | string | "INBOX" | FullNameRaw of the folder we retrieve message from FullNameRaw - parameter from response to FoldersGetList |
Token | string | "169874786e1d429e20fd993800a8c08c" | |
Uid | string | "11800" | UID of the message we need to fetch |
Sample response:
{
"Action":"MessageGet",
"AccountID":1,
"Result":
{
"@Object":"Object\/Message",
"Folder":"INBOX",
"Uid":11800,
"Subject":"Settings - BUG - \u041e\u0447\u0438\u0449\u0430\u044e\u0442\u0441\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0430\u043a\u043a\u0430\u0443\u043d\u0442\u0430 [Proj 7.6 (\u0410\u043f\u0440\u0435\u043b\u044c 2015)]",
"MessageId":"<972992e9d3b51c38806cd9f3ab27a105@asana.com>",
"Size":42291,
"TextSize":26800,
"InternalTimeStampInUTC":1428005433,
"ReceivedOrDateTimeStampInUTC":1428005432,
"TimeStampInUTC":1428005433,
"From":
[
{
"@Object":"Object\/Email",
"DisplayName":"Hisname",
"Email":"reply-d2377jd1b051e01e1545@asana.com"
}
],
"To":
[
{
"@Object":"Object\/Email",
"DisplayName":"Myname",
"Email":"myemail@afterlogic.com"
}
],
"Cc":null,
"Bcc":null,
"Sender":null,
"ReplyTo":
[
{
"@Object":"Object\/Email",
"DisplayName":"",
"Email":"2.30740yriq4xlrz43y5ml88uc@mail.asana.com"
}
],
"IsSeen":true,
"IsFlagged":false,
"IsAnswered":false,
"IsForwarded":false,
"HasAttachments":false,
"HasVcardAttachment":false,
"HasIcalAttachment":false,
"Priority":3,
"DraftInfo":null,
"Sensitivity":0,
"TrimmedTextSize":25000,
"Hash":"A3WxjSm50Oi77ZGz5NDPioaDrR4FiHyE6IJZpYtvXf7BODBsyMJx7oYSoHPe5Lx8oqJ59NASlyUApe5xgnnmuV9IE1uVPTQHb4l5-1Weh42Pf22h2rSndFs9xuiUSgMtV7hTOX3B9mdaRzgZ5r4p8k7UU1fTkGW4_M-xYVbnQ0uEdmCwr7XSEJTZeJlA19ihDv7I8MgzmCAPqvHSHOoAj8eqLngJaq3O8thzG-s6dWGZn1IC_bbt5wOUcyPketo2bteIXumOagXqvEPx_DJ7AaLikhK0JszGmLnjjUIrluP3ik1unaI4zZzaawXXO08o",
"Headers":"Return-path: <bounces+9814-dcce-myemail=afterlogic.com@mail.asana.com>\r\nEnvelope-to: myemail@afterlogic.com\r\nDelivery-date: Thu, 02 Apr 2015 13:10:33 -0700\r\nReceived: from [167.89.34.203] (helo=o5.mail.asana.com)\r\n\tby mx.afterlogic.com with esmtps (TLSv1.2:DHE-RSA-AES128-GCM-SHA256:128)\r\n\t(Exim 4.82)\r\n\t(envelope-from <bounces+9814-dcce-myemail=afterlogic.com@mail.asana.com>)\r\n\tid 1YdlRe-0006BU-MW\r\n\tfor myemail@afterlogic.com; Thu, 02 Apr 2015 13:10:32 -0700\r\nDKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=mail.asana.com; \r\n\th=content-type:mime-version:from ⦠",
"InReplyTo":"<244cac5f4a2abed3c4d8a0408@asana.com>",
"References":"<244cac5f4a2bed3c4d8a0408@asana.com>",
"ReadingConfirmation":"",
"Html":"<div data-x-div-type=\"html\" ><div data-x-div-type=\"body\" >\n<div> ... <\/div>\n<\/div><\/div>",
"Trimmed":false,
"Plain":"",
"PlainRaw":"",
"Rtl":false,
"ICAL":null,
"VCARD":null,
"Safety":true,
"HasExternals":true,
"FoundedCIDs":[],
"FoundedContentLocationUrls":[],
"Attachments"://null, if message contains no attachments
[
{
"@Object":"Object/CApiMailAttachment",
"FileName":"Message.html",
"MimeType":"text/html",
"MimePartIndex":"2",
"EstimatedSize":1690,
"CID":"",// Content-ID used for inline attachments
"ContentLocation":"",
"Thumb":false,
"Expand":false,
"Iframed":false,
"Content":"",
"IsInline":false,// true, if attachment headers state it's inline
"IsLinked":false,// true, if attachment is actually referenced as image in message body
"Hash":"-AIY6ErK0UHfC1MyPbdR2uAoaNosArVZxkRdbSYHd5BBMkNtSunFbu0XTtWccAGQGNlIn6OUcwUKWMsYRqxX6JiyS8LC6P9xnNuPM1ztaj-5BBHsQv0nVD77LDOzDizxHDoUrSchwO_aQWYUJtACfU1HekySjCdaGeW01UUl9OB2CpgoW2wjbcremcVfb_dFSDDpxQVN-OQEFxVz4yjuLA4R8ypJiU7r6dPJ5JywGQEuh8jgryDY3g.."
},
{
"@Object":"Object/CApiMailAttachment",
"FileName":"image001.png",
"MimeType":"image/png",
"MimePartIndex":"3",
"EstimatedSize":21457,
"CID":"image001.png@01D07613.013A2B70",
"ContentLocation":"",
"Thumb":true,
"Expand":false,
"Iframed":false,
"Content":"",
"IsInline":false,
"IsLinked":true,
"Hash":"sN2MQ_M-I6o3GtIpSrkKEcWeaDUUzMsymZkmZzXNyFBzkC8_nEr4c-IwAmQKMyQUl154NlHNOHty-BPE5f0Tai4B6oX1Pab55hr9CNC5yHp5UVA-uTBRRQSXsunSoyDB11dN6NHk16BwoZmUuFfPGZUcbWZb7cV_tGva6wbQUd0bHm-AtIcAVvJqgM734N1CVZPT5VZ6EAzinGus3tGR2SFDi7aoLresAbugizCZY9K9XgfM2Ykneg.."
}
],
"Custom":[]
},
"@Time":3.1465380191803
}
Hash is used in links for downloading file, and for viewing it if specific file type is supported.
Download link format: '?/Raw/Download/' + AccountID + '/' + Hash
File view link format: '?/Raw/View/' + AccountID + '/' + Hash
In case if you're not using web browser and cookies are unavailable, a different approach needs to be used for getting view/download links. It involves AuthToken value returned by SystemLogin call.
Download link format: '?/Raw/Download/' + AccountID + '/' + Hash + '/0/hash/' + AuthToken
File view link format: '?/Raw/View/' + AccountID + '/' + Hash + '/0/hash/' + AuthToken