Commit Graph
78 Commits
Author SHA1 Message Date
rustmailer 2250fe995e fix(cache): use point query instead of scan when deleting local cache 2026-08-31 14:44:11 +08:00
rustmailer 7daffa09e0 chore: Optimize the cleanup workflow. 2026-08-27 00:45:46 +08:00
rustmailer 8d0b4919c4 feat: support email drafts - create & send
- OpenAPI & gRPC endpoints
- IMAP/Gmail API/Graph API implementations
2026-07-20 20:56:51 +08:00
rustmailer 8804f50dde Update manager.rs 2026-03-28 20:10:53 +08:00
SanderBaan 206e16381b Update flags locally when flags are updated 2026-03-26 18:04:03 +01:00
rustmailer ce527d3025 Update license headers and copyright year to 2025-2026 2026-03-10 01:40:50 +08:00
rustmailer a6854396be feat(graph): support sending, replying, and forwarding emails 2026-02-04 00:37:07 +08:00
rustmailer 870d69f1de feat: feat: add Graph API compatibility for attachment download 2026-01-20 13:03:20 +08:00
rustmailer 4280d66838 fix(graph api): Prevent original message from being marked as read after creating reply draft 2025-12-16 15:03:20 +08:00
rustmailer 906447bfc4 feat: add reply-all option to reply draft creation 2025-12-11 02:02:05 +08:00
rustmailer 2b531ff09f feat: add tag color support for Gmail and Microsoft Graph accounts 2025-12-11 01:29:06 +08:00
rustmailer 99e18e494c chore(graph api): remove isReadReceiptRequested isRead parameters in create_reply 2025-12-10 01:45:11 +08:00
rustmailer 49ba67a7d2 feat(thread): Add support for fetching thread lists and thread messages from remote in Gmail and Graph API 2025-12-03 02:43:02 +08:00
rustmailer 21f679555e fix(graph): remove 'importance': 'high' from create_reply API 2025-11-25 00:03:12 +08:00
rustmailer 74cd2ab96f feat(graph api): Support Graph API for fetch_remote_messages 2025-11-22 22:38:09 +08:00
rustmailer f9857fe9ae feat(api): Introduce unified tag-messages interface for mail tagging
Introduces a new `/tag-messages` API endpoint that provides a consistent, unified capability for setting tags (Labels/Categories/Keywords) across different mailer types.
2025-11-21 12:58:58 +08:00
rustmailer 3e63223c81 Fix resync issue for empty accounts by skipping full rebuild and going straight to incremental sync 2025-11-12 20:02:37 +08:00
rustmailer 1ca23d30a3 Handle Graph API deserialization errors with detailed logging 2025-11-11 20:10:58 +08:00
rustmailer 566beabb7a Add Graph API compatibility for delete-mailbox and update-mailbox operations 2025-11-06 23:12:44 +08:00
rustmailer c50bd26cd9 refactor: refactorparent_id to parent_name since the ID is internal and not safe or convenient to use as a number in external environments like JavaScript 2025-11-06 21:06:25 +08:00
rustmailer 8a2093a48f feat: make /create-mailbox compatible with Graph API, add parent_id field to payload 2025-11-06 20:44:41 +08:00
rustmailer 4083f0bffd normalize display names for special Graph API folders (INBOX, SENTITEMS, DRAFTS) 2025-11-05 17:29:36 +08:00
rustmailer bd9d161559 feat: Implement Outlook API email deletion support 2025-11-05 14:06:52 +08:00
rustmailer 8bb5c0f7a7 feat: Make /move-messages and /copy-messages compatible with Graph API accounts 2025-11-05 11:54:35 +08:00
rustmailer d4645ea9d6 feat: Make /get-thread-messages and /list-threads compatible with Graph API accounts 2025-11-05 10:26:02 +08:00
rustmailer c2ec7e869f feat(outlook): implement retrieve_outlook_raw_email to fetch and save EML via Graph API 2025-11-05 09:55:49 +08:00
rustmailer af345b8a95 feat: Add EmailAddedToFolder event callback for Graph API accounts 2025-10-30 21:34:07 +08:00
rustmailer 690c289aac feat: append-reply-to-draft supports Graph API
- Adjust AppendReplyToDraft request payload:
  * `mailbox` is only required for IMAP accounts; Graph API ignores it
  * Remove `draft_folder_path`; IMAP automatically uses `mailbox` attribute to filter
- API now returns `ReplyDraft` containing:
  * `id` of the created draft
  * mailbox name of the draft
2025-10-30 20:45:25 +08:00
rustmailer a51b95815c feat: add /disk-cache endpoint to manually clear disk cache 2025-10-30 06:37:40 +08:00
rustmailer 64b57f4ac2 feat: add GraphAPI account support for message-content endpoint 2025-10-30 06:37:12 +08:00
rustmailer bbcc1348ff feat(graph): add Graph API support and GraphAPI account type 2025-10-28 19:39:49 +08:00
rustmailer de8067f586 feat: Add Graph API synchronization process 2025-10-27 06:59:07 +08:00
rustmailer 55d54785cd update 2025-10-23 20:14:46 +08:00
rustmailer 5d6a721e77 add Graph tests 2025-10-22 21:27:23 +08:00
rustmailer c6bf402707 debug: log UID batch content in diff_uids_and_flags to investigate empty remote_uids_set 2025-10-22 19:38:21 +08:00
rustmailer 7522ffc289 feat: add folder_limit per account
- Add `folder_limit` field to account model
- Support limiting sync per folder/label for both IMAP and Gmail API accounts
- Ensures each folder/label syncs at most `folder_limit` messages
2025-10-18 15:23:58 +08:00
rustmailer f88791741c chore: Ensure idempotent writes when storing Gmail API–synced email metadata locally. 2025-10-17 09:47:10 +08:00
rustmailer 59c771a363 fix(gmail): make header name matching case-insensitive for robustness 2025-10-17 09:09:14 +08:00
rustmailer 3096208b59 fix(sync): optimize account cache cleanup during full sync to prevent potential thread blocking 2025-10-15 10:40:45 +08:00
rustmailer 1a240b8f6b Update flow.rs 2025-10-14 22:38:38 +08:00
rustmailer b73af25d71 sync: share semaphore between IMAP and Gmail API to limit concurrency and reduce CPU load 2025-10-10 10:50:20 +08:00
rustmailer 4c4aeaceb7 Reduce Gmail metadata fetch concurrency from 5 to 1 to mitigate high CPU usage 2025-10-09 00:21:22 +08:00
rustmailer 57035bbc95 debug(imap): add detailed mailbox and matched folder logging for Sent folder investigation 2025-10-08 16:44:10 +08:00
rustmailer bd6efb153c refactor: merge uid and mid into a single id field in EmailAddedToFolder and EmailEnvelopeV3 2025-10-08 12:05:31 +08:00
rustmailer 60041ee59f feat: unify UID/MID and UIDs/MIDs into single id/ids fields 2025-10-03 21:20:04 +08:00
rustmailer e6225d13bd fix(api): remove mailbox/label filtering so that get-thread-messages returns full conversation threads across INBOX and SENT 2025-10-01 00:55:01 +08:00
rustmailer 16c84abe67 refactor(list-messages): switch from page-based to cursor-based pagination
- Changed `list-messages` API from page/page_size to cursor/next_page_token
- Aligns pagination approach with Gmail API for easier integration
- Frontend updates to handle cursor-based navigation
2025-09-28 07:39:40 +08:00
rustmailer 08ef77c23c feat(gmail): make search API 2025-09-24 13:30:25 +08:00
rustmailer 4c00e45657 refactor(gmail): switch Gmail account message deletion to batch API for efficiency 2025-09-24 13:29:49 +08:00
rustmailer 40e8004f4f feat(mail): add raw email retrieval support for Gmail API accounts 2025-09-20 03:37:57 +08:00