Commit Graph
68 Commits
Author SHA1 Message Date
rustmailer bdbbc04832 chore: adjust IMAP connection timeout configuration 2026-01-28 13:20:09 +08:00
rustmailer fed28c3eca fix: add tolerant HTML-to-text extraction (#141) 2026-01-28 13:19:33 +08:00
rustmailer e29e8d76b2 fix: dashboard fails with error 500 #80 2026-01-24 20:42:12 +08:00
rustmailer ecb81ac344 feat: limit concurrent mailbox downloads to 5 per account 2026-01-23 13:06:28 +08:00
rustmailer 694e5ecbec feat: reset the login password #126 2026-01-22 13:19:21 +08:00
rustmailer fcd19b1c9f Fix: storage dir creation logic and permissions issues ( #120, #121) 2026-01-21 00:10:07 +08:00
rustmailer 9b49005522 fix: "unknown" sender when importing PST #117 2026-01-20 01:22:06 +08:00
rustmailer 7240be8c31 feat: Separate Docker config file location and email data storage location #81 2026-01-19 22:53:03 +08:00
rustmailer 0d20a9676a feat(search-ui): optimize search UI 2026-01-19 01:52:07 +08:00
rustmailerandGitHub 48f8092b5a Merge pull request #113 from ktdd/search-improvements-v1
Search improvements
2026-01-14 14:32:38 +08:00
rustmailer f82b20e2fd chore: Set minimum username length to 3 #106 2026-01-14 01:11:01 +08:00
rustmailer 97c3db3bd2 chore: default to binding 0.0.0.0 and support binding IPv6 addresses. 2026-01-14 00:27:31 +08:00
rustmailerandGitHub 82fb2a02bc Merge pull request #110 from op3/feat/support-listening-on-ipv6
Support listening on IPv6 addresses
2026-01-13 23:59:02 +08:00
rustmailerandGitHub c61977ce5c Merge pull request #107 from metlos/no-cap-on-sync-interval
Remove the maximum from the sync_interval_min.
2026-01-13 23:51:14 +08:00
rustmailer 3b040d0cd6 feat: add support for Outlook PST file import #105 2026-01-13 23:32:18 +08:00
rustmailer 5d3c319a67 fix: skip invalid MBOX files during import 2026-01-13 23:31:45 +08:00
ktdd ad2a43aa35 Search improvements 2026-01-13 12:48:55 +02:00
Oliver Papst bc3eba5bf7 feat: change default bind address to :: for dual‑stack support
The socket bound to :: accepts both IPv6 and IPv4 (mapped) connections,
so this change enables IPv6 connectivity in addition to the existing
IPv4 behaviour.
2026-01-10 22:36:31 +01:00
Oliver Papst 4dc99b4a84 feat: Add IPv6 support for bichon_bind_ip configuration
Also try to parse the bind_ip address as std::net::Ipv6Addr to accept
both IPv4 and IPv6 addresses. The TcpListener of poem utilizes
ToSocketAddrs trait, which also supports IPv6.
2026-01-10 22:25:31 +01:00
Lukas Krejci 8ce8b9692d Remove the maximum from the sync_interval_min. 2026-01-09 01:35:58 +01:00
rustmailer 54a0a71c44 fix: Missing permission 'user:manage' #102 2026-01-07 23:01:25 +08:00
rustmailer b490923e17 refactor(search): search filtering and sorting 2026-01-07 16:40:45 +08:00
ktdd 7edd7c2e35 Updated presets and added a 'sort by' feature. 2026-01-06 12:33:09 +02:00
rustmailer 0c46432150 fix: Inline attachments are not counted as attachments and are not shown when searching for emails with attachments. 2026-01-06 16:28:55 +08:00
rustmailer 55e97510c4 fix: Folder limit cannot be empty #97 2026-01-05 21:32:00 +08:00
rustmailer e56fe5ebea feat(mailbox): support mailbox cleanup #96 2026-01-05 18:27:40 +08:00
rustmailer 3f4b37be17 feat(cli): add interactive email import tool for EML, MBOX, and Thunderbird
- Implement `bichonctl` interactive CLI using `dialoguer`.
- Support recursive EML directory scanning with folder structure preservation.
- Support single MBOX file streaming import.
- Support Thunderbird profile import with automatic `.sbd` hierarchy detection.
- Add batch processing (Base64 encoding & batch API requests) for improved performance.
2026-01-05 14:31:04 +08:00
rustmailer 09375ee11c fix: #94 2026-01-01 20:28:23 +08:00
rustmailer b2e43b0907 fix: skip default admin role validation when global_roles is None #93 2026-01-01 15:24:51 +08:00
rustmailer ef891b20c3 fix(account): update sync range and handle all-mode reset 2025-12-31 22:57:20 +08:00
rustmailer a6216c2ce6 feat: support restoring single message to IMAP #77 2025-12-31 22:56:06 +08:00
rustmailer ae916574de Fix: modifying the admin user 2025-12-31 02:43:57 +08:00
rustmailer f49929dd67 Update message.rs 2025-12-30 22:41:51 +08:00
rustmailerandGitHub e666f76d87 Merge branch 'main' into feat/envelope-endpoint-and-api-improvements 2025-12-30 22:32:11 +08:00
rustmailer 7fb6575f8d feat: use email 'Date' header for statistics and search filtering #87 2025-12-30 22:21:53 +08:00
rustmailer 455e6b1a75 feat: support user appearance preferences with persisted theme and language #85 2025-12-30 15:09:41 +08:00
rustmailer 62d956c7d6 feat: increase password max to 256, fix i18n, and force re-login #83
- Raise password maximum length from 32 to 256 characters
- fix profileSchema to accept `t` for proper internationalization
- Invalidate user's WebUI token on password change, requiring re-login
2025-12-30 11:05:07 +08:00
rustmailer 76ab16b55b fetch: support fetching mails before a specified date 2025-12-29 12:06:04 +08:00
rustmailer a02bb65ca0 feat: Search results display the account email and mailbox name. #39 2025-12-28 13:20:21 +08:00
rustmailer 1f57f372d3 feat: Add sync_batch_size to allow users to customize the synchronization batch size, and introduce date_before to support semantics such as downloading emails from more than one year ago. #24 #58 2025-12-28 13:01:34 +08:00
rustmailer 16578fb8e2 fix: stitch adjacent RFC2047 words to prevent byte-split artifacts #79 2025-12-27 03:38:53 +08:00
rustmailer 6dd3f90ee0 update 2025-12-26 20:04:31 +08:00
rustmailerandGitHub e64c2467fd Merge branch 'main' into fix/rename-id-to-message-id 2025-12-26 19:59:25 +08:00
rustmailer 0f3ad83004 feat: use password file as primary source if provided 2025-12-26 14:44:49 +08:00
rustmailer 4af5176b65 feat: add multi-user support and role-based access control #31 2025-12-26 14:27:04 +08:00
Lukas Krejci 9b83d5617e feat(cli): add an option to specify the encrypt password in a file 2025-12-17 18:03:00 +01:00
Michel-Marie MAUDETandClaude Opus 4.5 70db81dc03 feat(api): Add envelope endpoint and improve API documentation
- Add GET /envelope/{account_id}/{message_id} endpoint to retrieve message envelope (metadata)
- Add get_envelope_by_id method to ENVELOPE_INDEX_MANAGER for querying single envelope
- Move message_id from query parameter to path parameter for clearer API paths:
  - /message-content/{account_id}/{message_id}
  - /download-message/{account_id}/{message_id}
  - /download-attachment/{account_id}/{message_id}
  - /envelope/{account_id}/{message_id}
- Fix API documentation descriptions to be more accurate:
  - search_messages: Now correctly describes search functionality
  - get_thread_messages: Mentions thread_id requirement
  - proxy endpoints: Fixed copy-paste errors from OAuth2 docs
- Update frontend API client to use new path-based URLs

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-14 11:12:16 +01:00
Michel-Marie MAUDETandClaude Opus 4.5 6b18d7371d fix(api): Use poem_openapi::param::Path for OpenAPI documentation
- Fix Path import in message.rs, account.rs, mailbox.rs, oauth2.rs,
  and auto_config.rs to use poem_openapi::param::Path instead of
  poem::web::Path
- This ensures path parameters appear in OpenAPI/Swagger documentation
- Update frontend API calls to use message_id parameter
- Add parameter documentation comments for better API clarity

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-14 09:33:18 +01:00
Michel-Marie MAUDETandClaude Opus 4.5 934e81c5f9 fix(api): Rename query parameter id to message_id for clarity
Rename the `id` query parameter to `message_id` in three message API
endpoints for better API clarity and consistency:

- GET /api/v1/message-content/:account_id
- GET /api/v1/download-message/:account_id
- GET /api/v1/download-attachment/:account_id

This is a breaking change for API clients that use these endpoints.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-14 08:02:02 +01:00
rustmailer 20970b4fb6 Feat: Add IMAP connection pool status logging and disable bb8 idle timeout 2025-12-08 03:41:56 +08:00