MailSpring源码分析--接口数据格式
本帖最后由 Qter 于 2020-10-13 16:29 编辑Folder{
"modelClass": "Folder",
"modelJSONs": [{
"__cls": "Folder",
"aid": "b800a344",
"id": "Lk12eu8qWXuhFfhNgWQL95A9kY2aTz54ARP64zovM",
"path": "INBOX",
"role": "inbox",
"v": 2
}, {
"__cls": "Folder",
"aid": "b800a344",
"id": "StmzU7PDLSyVMtFArwBZMDv5EbSv45TjmXjbaPZCV",
"path": "&g0l6P3ux-",
"role": "drafts",
"v": 2
}, {
"__cls": "Folder",
"aid": "b800a344",
"id": "Jpge8BvRtPRvkZTJHhSFqPBKhnaT2DyXQRGuNN98R",
"path": "&XfJT0ZAB-",
"role": "sent",
"v": 2
}, {
"__cls": "Folder",
"aid": "b800a344",
"id": "q2zZWGt1Ky4YEkam5YokAALNktbtxA1xmPVB84BDu",
"path": "&XfJSIJZk-",
"role": "trash",
"v": 2
}, {
"__cls": "Folder",
"aid": "b800a344",
"id": "d6Pqqtiq83Wn94G8GUvpujjWQ6bcYoPjUDZyRkGKH",
"path": "&V4NXPpCuTvY-",
"role": "spam",
"v": 2
}, {
"__cls": "Folder",
"aid": "b800a344",
"id": "CtDtb7hksdT1NNG1kBYvcN8UJRNTUrVBWDHCzXEdr",
"path": "&UWxT+JCuTvY-",
"role": "",
"v": 1
}, {
"__cls": "Folder",
"aid": "b800a344",
"id": "V9AQF7D63q3qKCS6ZzJA1kfC3AtzeMWbohkvuRdRb",
"path": "Personal",
"role": "",
"v": 1
}, {
"__cls": "Folder",
"aid": "b800a344",
"id": "TeNLJcSZPWm9t1RZ5dFBybQAt5RFrqLRbcEsf3XjE",
"path": "Mailspring",
"role": "",
"v": 1
}, {
"__cls": "Folder",
"aid": "b800a344",
"id": "xxnLufF2J6YeBsBnXB8RX1UXbeY5pcjbbMGi3RCz",
"path": "Mailspring/Snoozed",
"role": "snoozed",
"v": 2
}],
"type": "persist"
}Messag
{
"modelClass": "Message",
"modelJSONs": [{
"__cls": "Message",
"_sa": 1602496215,
"_suc": 0,
"aid": "b800a344",
"bcc": [],
"cc": [],
"date": 1595234938,
"draft": false,
"extraHeaders": {},
"files": [],
"folder": {
"__cls": "Folder",
"aid": "b800a344",
"id": "Jpge8BvRtPRvkZTJHhSFqPBKhnaT2DyXQRGuNN98R",
"path": "&XfJT0ZAB-",
"role": "sent",
"v": 3
},
"from": [{
"email": "15313159857@139.com",
"name": "15313159857@139.com"
}],
"gMsgId": "0",
"hMsgId": "202007201648566810450@139.com",
"id": "iG1rqtbwLjCp7joccKo6ujsfBuWBNriDtyp6Gbix4",
"labels": [],
"plaintext": false,
"remoteFolder": {
"__cls": "Folder",
"aid": "b800a344",
"id": "Jpge8BvRtPRvkZTJHhSFqPBKhnaT2DyXQRGuNN98R",
"path": "&XfJT0ZAB-",
"role": "sent",
"v": 3
},
"remoteUID": 2742,
"replyTo": [{
"email": "15313159857@139.com",
"name": "15313159857@139.com"
}],
"rthMsgId": null,
"snippet": "test content 15313159857@139.com",
"starred": false,
"subject": "test",
"threadId": "t:iG1rqtbwLjCp7joccKo6ujsfBuWBNriDtyp6Gbix4",
"to": [{
"email": "15313159857@139.com",
"name": "15313159857"
}],
"unread": false,
"v": 5
}, {
"__cls": "Message",
"_sa": 1602496214,
"_suc": 0,
"aid": "b800a344",
"bcc": [],
"cc": [],
"date": 1492644734,
"draft": false,
"extraHeaders": {},
"files": [],
"folder": {
"__cls": "Folder",
"aid": "b800a344",
"id": "Lk12eu8qWXuhFfhNgWQL95A9kY2aTz54ARP64zovM",
"path": "INBOX",
"role": "inbox",
"v": 3
},
"from": [{
"email": "itzj1_cmpost@139.com",
"name": "IT涔嬪?"
}],
"gMsgId": "0",
"hMsgId": "301865120.64159.1492644734333.JavaMail.subscribeService@appdingyue02",
"headersSyncComplete": true,
"id": "qwDF4ZwVpQgprpFb41agxy5uCSVdL8LCVS98JgtwG",
"labels": [],
"remoteFolder": {
"__cls": "Folder",
"aid": "b800a344",
"id": "Lk12eu8qWXuhFfhNgWQL95A9kY2aTz54ARP64zovM",
"path": "INBOX",
"role": "inbox",
"v": 3
},
"remoteUID": 2468,
"replyTo": [{
"email": "itzj1_cmpost@139.com",
"name": "IT涔嬪?"
}],
"rthMsgId": null,
"starred": false,
"subject": "鍚哥溂鐞冿紒涓扮敯瀹e竷璁″垝鐢熶骇
本帖最后由 Qter 于 2020-10-13 16:55 编辑
Message2{
"modelClass": "Message",
"modelJSONs": [{
"__cls": "Message",
"_sa": 1602496206,
"_suc": 0,
"aid": "b800a344",
"bcc": [],
"body": "<html>htmlcontent</html>",
"cc": [],
"date": 1596073609,
"draft": false,
"extraHeaders": {},
"files": [],
"folder": {
"__cls": "Folder",
"aid": "b800a344",
"id": "Lk12eu8qWXuhFfhNgWQL95A9kY2aTz54ARP64zovM",
"path": "INBOX",
"role": "inbox",
"v": 2
},
"from": [{
"email": "2842929645@qq.com",
"name": "2842929645@qq.com"
}],
"fullSyncComplete": true,
"gMsgId": "0",
"hMsgId": "tencent_21AE1435893CB72D50FEBAF1305701F7BB07@qq.com",
"headersSyncComplete": true,
"id": "remEPGj5RBNdCbidBnGgEXVsVd6soxEtKjaxrgSpz",
"labels": [],
"plaintext": false,
"remoteFolder": {
"__cls": "Folder",
"aid": "b800a344",
"id": "Lk12eu8qWXuhFfhNgWQL95A9kY2aTz54ARP64zovM",
"path": "INBOX",
"role": "inbox",
"v": 2
},
"remoteUID": 2745,
"replyTo": [{
"email": "2842929645@qq.com",
"name": "2842929645@qq.com"
}],
"rthMsgId": null,
"snippet": "2842929645@qq.com",
"starred": false,
"subject": "gfd",
"threadId": "t:remEPGj5RBNdCbidBnGgEXVsVd6soxEtKjaxrgSpz",
"to": [{
"email": "15313159857@139.com",
"name": "15313159857"
}],
"unread": false,
"v": 2
}, {
"__cls": "Message",
"_sa": 1602496206,
"_suc": 0,
"aid": "b800a344",
"bcc": [],
"body": "<html>htmlcontet2</html>",
"cc": [],
"date": 1595234938,
"draft": false,
"extraHeaders": {},
"files": [],
"folder": {
"__cls": "Folder",
"aid": "b800a344",
"id": "Lk12eu8qWXuhFfhNgWQL95A9kY2aTz54ARP64zovM",
"path": "INBOX",
"role": "inbox",
"v": 2
},
"from": [{
"email": "15313159857@139.com",
"name": "15313159857@139.com"
}],
"fullSyncComplete": true,
"gMsgId": "0",
"hMsgId": "202007201648566810450@139.com",
"headersSyncComplete": true,
"id": "iG1rqtbwLjCp7joccKo6ujsfBuWBNriDtyp6Gbix4",
"labels": [],
"plaintext": false,
"remoteFolder": {
"__cls": "Folder",
"aid": "b800a344",
"id": "Lk12eu8qWXuhFfhNgWQL95A9kY2aTz54ARP64zovM",
"path": "INBOX",
"role": "inbox",
"v": 2
},
"remoteUID": 2741,
"replyTo": [{
"email": "15313159857@139.com",
"name": "15313159857@139.com"
}],
"rthMsgId": null,
"snippet": "test content 15313159857@139.com",
"starred": false,
"subject": "test",
"threadId": "t:iG1rqtbwLjCp7joccKo6ujsfBuWBNriDtyp6Gbix4",
"to": [{
"email": "15313159857@139.com",
"name": "15313159857"
}],
"unread": false,
"v": 2
}, {
"__cls": "Message",
"_sa": 1602496206,
"_suc": 0,
"aid": "b800a344",
"bcc": [],
"cc": [],
"date": 1482800592,
"draft": false,
"extraHeaders": {},
"files": [],
"folder": {
"__cls": "Folder",
"aid": "b800a344",
"id": "Lk12eu8qWXuhFfhNgWQL95A9kY2aTz54ARP64zovM",
"path": "INBOX",
"role": "inbox",
"v": 2
},
"from": [{
"email": "jkhb_cmpost@139.com",
"name": "139"
}],
"gMsgId": "0",
"hMsgId": "269504832.14173.1482800592490.JavaMail.subscribeService@appdingyue02",
"headersSyncComplete": true,
"id": "VmWzuufgfhnG9aXPwYvnMgj25A9SC7La8zVomTdp3",
"labels": [],
"remoteFolder": {
"__cls": "Folder",
"aid": "b800a344",
"id": "Lk12eu8qWXuhFfhNgWQL95A9kY2aTz54ARP64zovM",
"path": "INBOX",
"role": "inbox",
"v": 2
},
"remoteUID": 2446,
"replyTo": [{
"email": "jkhb_cmpost@139.com",
"name": "139"
}],
"rthMsgId": null,
"starred": false,
"subject": "fdsfd",
"threadId": "t:VmWzuufgfhnG9aXPwYvnMgj25A9SC7La8zVomTdp3",
"to": [],
"unread": false,
"v": 1
}, {
"__cls": "Message",
"_sa": 1602496206,
"_suc": 0,
"aid": "b800a344",
"bcc": [],
"cc": [],
"date": 1489652566,
"draft": false,
"extraHeaders": {},
"files": [],
"folder": {
"__cls": "Folder",
"aid": "b800a344",
"id": "Lk12eu8qWXuhFfhNgWQL95A9kY2aTz54ARP64zovM",
"path": "INBOX",
"role": "inbox",
"v": 2
},
"from": [{
"email": "umc_service@139.com",
"name": "rrr"
}],
"gMsgId": "0",
"hMsgId": "813132157.69863.1489652566778.JavaMail.api@umc-api4",
"headersSyncComplete": true,
"id": "ApPwWThvevAeas6teXWX8BxvXAThwGNi5XUgAgXKh",
"labels": [],
"remoteFolder": {
"__cls": "Folder",
"aid": "b800a344",
"id": "Lk12eu8qWXuhFfhNgWQL95A9kY2aTz54ARP64zovM",
"path": "INBOX",
"role": "inbox",
"v": 2
},
"remoteUID": 2445,
"replyTo": [{
"email": "umc_service@139.com",
"name": "ccc"
}],
"rthMsgId": null,
"starred": false,
"subject": "cccc",
"threadId": "t:ApPwWThvevAeas6teXWX8BxvXAThwGNi5XUgAgXKh",
"to": [{
"email": "15313159857@139.com"
}],
"unread": false,
"v": 1
}],
"type": "persist"
} Thread{
"modelClass": "Thread",
"modelJSONs": [{
"__cls": "Thread",
"aid": "b800a344",
"attachmentCount": 0,
"fmt": 1599356733,
"folders": [{
"__cls": "Folder",
"_refs": 1,
"_u": 0,
"aid": "b800a344",
"id": "Lk12eu8qWXuhFfhNgWQL95A9kY2aTz54ARP64zovM",
"path": "INBOX",
"role": "inbox",
"v": 2
}],
"gThrId": "",
"id": "t:RysRwotYxZtJXTEsVSrzR2fjqRqyUaAPJJfHsSh12",
"inAllMail": true,
"labels": [],
"lmrt": 1599356733,
"lmst": 0,
"lmt": 1599356733,
"participants": [{
"email": "15313159857@139.com"
}, {
"email": "mail139@139.com",
"name": "eeeee"
}],
"searchRowId": 1,
"starred": 0,
"subject": "tttt",
"unread": 0,
"v": 3
}, {
"__cls": "Thread",
"aid": "b800a344",
"attachmentCount": 0,
"fmt": 1596073609,
"folders": [{
"__cls": "Folder",
"_refs": 1,
"_u": 0,
"aid": "b800a344",
"id": "Lk12eu8qWXuhFfhNgWQL95A9kY2aTz54ARP64zovM",
"path": "INBOX",
"role": "inbox",
"v": 2
}],
"gThrId": "",
"id": "t:remEPGj5RBNdCbidBnGgEXVsVd6soxEtKjaxrgSpz",
"inAllMail": true,
"labels": [],
"lmrt": 1596073609,
"lmst": 0,
"lmt": 1596073609,
"participants": [{
"email": "15313159857@139.com",
"name": "15313159857"
}, {
"email": "2842929645@qq.com",
"name": "2842929645@qq.com"
}],
"searchRowId": 2,
"starred": 0,
"subject": "sss",
"unread": 0,
"v": 3
}, {
"__cls": "Thread",
"aid": "b800a344",
"attachmentCount": 0,
"fmt": 1489652566,
"folders": [{
"__cls": "Folder",
"_refs": 1,
"_u": 0,
"aid": "b800a344",
"id": "Lk12eu8qWXuhFfhNgWQL95A9kY2aTz54ARP64zovM",
"path": "INBOX",
"role": "inbox",
"v": 2
}],
"gThrId": "",
"id": "t:ApPwWThvevAeas6teXWX8BxvXAThwGNi5XUgAgXKh",
"inAllMail": true,
"labels": [],
"lmrt": 1489652566,
"lmst": 0,
"lmt": 1489652566,
"participants": [{
"email": "15313159857@139.com"
}, {
"email": "umc_service@139.com",
"name": "ttt"
}],
"searchRowId": 32,
"starred": 0,
"subject": "sss",
"unread": 0,
"v": 2
}],
"type": "persist"
} app\src\global\mailspring-exports.js
const lazyLoadAndRegisterModel = (klassName, path) => {
lazyLoad(klassName, `flux/models/${path}`);
DatabaseObjectRegistry.register(klassName, () => exports);
};
lazyLoadAndRegisterModel(`File`, 'file');
lazyLoadAndRegisterModel(`Event`, 'event');
lazyLoadAndRegisterModel(`Label`, 'label');
lazyLoadAndRegisterModel(`Folder`, 'folder');
lazyLoadAndRegisterModel(`Thread`, 'thread');
lazyLoadAndRegisterModel(`Account`, 'account');
lazyLoadAndRegisterModel(`Message`, 'message');
lazyLoadAndRegisterModel(`Contact`, 'contact');
Messages are a sub-object of threads. The content of a message === immutable (with the
exception being drafts). Mailspring does not support operations such as move || delete on
individual messages; those operations should be performed on the message’s thread.
All messages are part of a thread, even if that thread has only one message.
https://docs.nylas.com/reference#filters
https://docs.nylas.com/reference#messages
页:
[1]