Commit Graph

19 Commits

Author SHA1 Message Date
rustmailer 8942f9518e fix: allow set license when license expired 2025-08-24 23:53:52 +08:00
rustmailer df4f715d70 add some tests 2025-08-24 23:53:25 +08:00
rustmailer 07f7ebc0ed docs: fix misleading comment for use_proxy field 2025-08-21 00:30:51 +08:00
rustmailer eed988292a feat(auth): update login flow and add root password reset API & UI
- Changed login implementation to use plaintext password
- Added reset root password API endpoint integration
- Implemented UI for resetting root password with validation
2025-08-19 03:30:41 +08:00
rustmailer f838e66018 feat(email): add thread_id field to EmailAddedToFolder 2025-08-18 00:54:41 +08:00
rustmailer 1b8fc39037 fix(template): correct secondary index type 2025-08-18 00:36:07 +08:00
rustmailer 4c47bfe42c fix(mailbox): rebuild cache with early mailbox availability and error handling
- Batch insert remote mailboxes before full synchronization so that
  mailbox metadata is queryable as soon as possible.
- If synchronization of a mailbox fails, remove it to prevent
  stale or inconsistent local data.
2025-08-18 00:35:26 +08:00
rustmailer 071f2929f0 feat(oauth2): support external OAuth2 token upsert with optional refresh token
- Add `ExternalOAuth2Request` validation to ensure mutual dependency between
  `oauth2_id` and `refresh_token`.
- Upsert external OAuth2 tokens for an account:
  - If only `access_token` is provided, RustMailer stores it directly.
  - If both `oauth2_id` and `refresh_token` are provided, RustMailer can refresh
    the access token using stored client credentials.
- Update REST API endpoint to `configure_external_oauth2` with proper OpenAPI docs.
- Add gRPC `ExternalOAuth2Request` message and corresponding `UpsertExternalOAuth2Token` RPC.
2025-08-18 00:33:50 +08:00
rustmailer d9d0aa336d feat: add a system config item 'rustmailer_oauth2_success_redirect' 2025-08-13 15:59:00 +08:00
rustmailer c2996d9e39 feat(api): add HTTP and gRPC endpoints for appending a reply draft email
- Added REST endpoint `POST /append-reply-to-draft/:account_id` that creates a reply draft linked to the original email thread with appropriate headers (`References`, `In-Reply-To`).
- Added equivalent gRPC method for creating and appending reply drafts.
2025-08-12 21:31:06 +08:00
rustmailer 7ba24b45b2 feat: add email thread related APIs and data structures
- Add two new APIs to list email threads and fetch all messages within a thread
- Create a new email thread table to store thread information
- Implement method to extract thread_id from emails to support thread association queries
2025-08-10 05:11:41 +08:00
rustmailer 76139344fb chore(legal): add copyright/license headers to all source files 2025-07-29 02:02:08 +08:00
rustmailer 7e797562a3 fix: update default delay parameter for send email and hooks tasks 2025-07-28 18:01:04 +08:00
rustmailer c46b41b657 feat: add email-based message search API (OpenAPI + gRPC) with new index table
- Added unified search interface to query messages by email address
- Implemented both OpenAPI and gRPC endpoints
- Introduced new index table to optimize email-based lookups
2025-07-26 04:18:35 +08:00
rustmailer 0dbaaa865f fix(imap): fix nested OR conditions parentheses
- Correctly generate IMAP syntax for nested OR conditions (e.g. `OR (OR A B) C`)
- Add tests for complex logic combinations
2025-07-25 10:43:32 +08:00
rustmailer e3cbc7f4cc feat: enable proxy support (HTTP and SOCKS5); webhook now supports configurable proxy 2025-07-23 03:32:10 +08:00
rustmailer 4e80c6d979 fix: align forward params with backend, use Option<bool> for default handling 2025-07-22 20:54:30 +08:00
rustmailer 324b69dab5 refactor: reorganize error codes into logical categories 2025-07-22 15:31:22 +08:00
rustmailer 0044f37d7b feat: initial commit 2025-07-17 22:49:42 +08:00