rustmailer
9b1f6cae8c
update
2026-08-03 00:17:00 +08:00
rustmailer
409370be4b
bump version
2026-07-31 22:50:46 +08:00
rustmailer
657371c669
update
2026-07-31 18:23:42 +08:00
rustmailer
8ab549c27c
Merge branch 'main' of https://github.com/rustmailer/bichon
2026-07-31 18:03:07 +08:00
rustmailer
1b7daff10d
fix: Proxy field shows error when editing an account #335
2026-07-31 18:03:05 +08:00
rustmailer
57a3c3c519
Update README.md
2026-07-29 00:24:09 +08:00
rustmailer
a280fb6198
feat(server): auto-build web frontend in build.rs
2026-07-29 00:24:06 +08:00
rustmailer
022813a17c
Update account-settings-page.tsx
2026-07-28 23:37:06 +08:00
rustmailer
281a256582
Update release.yml
2026-07-28 23:32:06 +08:00
rustmailer
02e9864343
Merge remote-tracking branch 'origin/main' into replace-fjall-with-blob
2026-07-28 21:38:44 +08:00
rustmailer
eae26d3e97
perf(blob): batch blob writes during migration to avoid per-blob fsync overhead
2026-07-28 21:13:16 +08:00
rustmailer
de2a2b5d47
fix: healthcheck with macvlan #329
2026-07-28 14:11:46 +08:00
rustmailer
664ac2fe55
fix: can't set proxy for email account (IMAP) #326
2026-07-20 23:00:36 +08:00
rustmailer
c468f8be41
fix(admin): skip oversized blobs during migration instead of aborting
2026-07-16 05:22:10 +08:00
rustmailer
a88b5c84f3
Merge remote-tracking branch 'origin/main' into replace-fjall-with-blob
2026-07-15 10:48:51 +08:00
rustmailer
c6da79cdb0
feat(config): add built-in IMAP server config with shared SMTP/IMAP TLS paths
2026-07-15 09:40:44 +08:00
rustmailer
eac19ce695
Update envelope.rs
2026-07-14 07:34:56 +08:00
rustmailer
6bb88d37fa
2.0.0-alpha.1
2026-07-14 05:58:20 +08:00
rustmailer
951901ac0b
update
2026-07-14 05:49:54 +08:00
rustmailer
b7e757dbf7
update
2026-07-13 20:56:26 +08:00
rustmailer
85987e39fb
update
2026-07-13 00:04:53 +08:00
rustmailer
adff34940c
update
2026-07-10 17:24:56 +08:00
rustmailer
a8f2740973
Create README.md
2026-07-10 16:44:25 +08:00
rustmailer
36692e2091
feat: replace fjall with bichon-blob for blob storage
...
- use a single Engine instance for email + attachment blobs
- add delete_batch, gc_if_needed, background flush to blob crate
- fix Entry.raw_size storing compressed length instead of original
- move fjall-dependent migration code from core to admin crate
- add STORAGE_VERSION file for layout version detection
2026-07-10 03:17:38 +08:00
rustmailer
4cdf3ee5f1
refactor(blob): add delete_batch, gc_if_needed, background flush, and fix bincode compat
...
- Replace bincode 3.0.0 (empty crate) with bincode_reloaded 3.1.10
- Add delete_batch for efficient grouped tombstone writes
- Add gc_if_needed to skip GC when no segment exceeds threshold
- Add flush() for lightweight fsync+meta checkpoint without compact
- Add Config::flush_interval_secs to spawn a background flush thread
- Remove per-put/per-delete fsync; persistence via background flush
- Split gc_segments into gc_prepare/gc_finish to reduce write lock hold time
2026-07-10 01:52:04 +08:00
rustmailer
7dee5a7874
bump to v1.6.2
2026-07-08 23:55:05 +08:00
rustmailer
166ac21549
feat: add tag display and editing to email view
2026-07-08 00:30:20 +08:00
rustmailer
524201c26d
docs(openapi): update attachment download param to content_hash #314
2026-07-06 09:46:29 +08:00
rustmailer
2da42134d0
feat: Improve account setup UI and add post-download email filtering
2026-06-30 09:42:03 +08:00
rustmailer
5fe45795b9
bump to 1.6.1
2026-06-28 11:39:58 +08:00
rustmailer
4996dac1ea
Update folder-hint.ts
2026-06-28 11:39:44 +08:00
rustmailer
42ce36a439
feat: add searchable account selector with alphabetical sort in user dialog #289
2026-06-28 11:35:39 +08:00
rustmailer
40ae2d49d4
feat: web upload supports PST, configurable MBOX/PST size limits
...
- Make MBOX/PST upload size limits configurable via SETTINGS
(bichon_web_mbox_upload_limit_mb defaults to 1 GB,
bichon_web_pst_upload_limit_mb defaults to 2 GB)
2026-06-28 09:43:50 +08:00
rustmailer
5034760517
fix: detect previewable attachments by file extension when MIME type is octet-stream #309
2026-06-27 16:08:42 +08:00
rustmailer
875eb2e309
fix:Truncate "To" column recipients in Search tab to prevent excessive row height #308
2026-06-27 13:06:41 +08:00
rustmailer
f0d0f202ba
bump to 1.6.0
2026-06-26 19:15:46 +08:00
rustmailer
0d37825625
feat: fullscreen attachment gallery with image navigation
2026-06-26 19:13:14 +08:00
rustmailer
cfb8172607
fix: sliding token expiry and silent 401 redirect
2026-06-26 18:29:18 +08:00
rustmailer
8641bb4b56
fix: Proxy does not support formats from proxy providers #307
2026-06-26 18:20:19 +08:00
rustmailer
cdf27f2dd4
feat: add web upload for EML/MBOX files #260
2026-06-26 17:49:35 +08:00
rustmailer
db36272bae
feat: add in-browser attachment preview for images, PDFs, and text files #303
2026-06-25 04:51:05 +08:00
rustmailer
cad447275f
feat: search for an email address simultaneously in to, cc and bcc #304
2026-06-25 02:36:24 +08:00
rustmailer
8542ba0d28
feat: Display Name / Alias for IMAP Accounts #306
2026-06-25 02:00:20 +08:00
rustmailer
af089958e9
Update README.md
2026-06-24 23:11:52 +08:00
rustmailer
bba1ea5cc7
feat: add per-account FilterRule, ExtractionRules and ArchiveRules with regex validation
2026-06-24 21:46:32 +08:00
rustmailer
9e55026f12
feat: add SSO/OIDC support to user model and settings
2026-06-24 17:32:14 +08:00
rustmailer
b0f229618c
refactor(blob): add NFS-safe file I/O layer
2026-06-24 00:03:56 +08:00
rustmailer
ff59d47a0d
fix(blob): fsync meta before rename and hold write_mutex during GC
2026-06-23 23:57:34 +08:00
rustmailer
b6957c8ceb
test(blob): add concurrent access and crash recovery integration tests
2026-06-23 23:29:48 +08:00
rustmailer
cd98c050b6
fix(blob): invalidate FilePool after GC to prevent stale reads
2026-06-23 23:28:33 +08:00
rustmailer
11e40750fe
feat(blob): add FilePool read cache and fix BucketCache TOCTOU
2026-06-23 23:23:03 +08:00
rustmailer
b0374517e8
fix(blob): address review issues - visibility, unused param
2026-06-23 23:20:24 +08:00
rustmailer
4e12ae5457
refactor(blob): replace global RwLock with per-account Arc<AccountHandle>
2026-06-23 23:13:39 +08:00
rustmailer
495c91b7ae
fix(blob): address code review issues - CRC guard, tests, clone
2026-06-23 23:10:15 +08:00
rustmailer
e442db4a2d
feat(blob): replace JSON metadata with bincode + CRC32 binary format
2026-06-23 23:01:32 +08:00
rustmailer
cc54063669
chore(blob): add bincode dependency and new meta error variants
2026-06-23 22:55:13 +08:00
rustmailer
04745458bc
feat(blob): add embedded KV storage engine for email archiving
2026-06-23 21:38:31 +08:00
rustmailer
6fcc9e0e8e
bump to v1.5.3
2026-06-23 17:18:46 +08:00
rustmailer
220aa268c1
feat(imap): handle UIDVALIDITY changes via Message-ID comparison instead of full rebuild
2026-06-23 10:46:36 +08:00
rustmailer
e3fd9d2f29
fix: purge DedupCache entries on account/mailbox/envelope removal
2026-06-22 17:11:20 +08:00
rustmailer
41c3b84e65
feat(ui): persist account table sorting to localStorage
2026-06-21 12:50:21 +08:00
rustmailer
89557700ae
Merge branch 'main' of https://github.com/rustmailer/bichon
2026-06-11 09:23:00 +08:00
rustmailer
2f5de48c6a
fix(smtp): reject journaling attempts to non-local accounts
2026-06-11 09:22:57 +08:00
rustmailer
6f572b15ae
deps: upgrade fjall to 3.1.5 to address NFS Bad file descriptor error #216 #242 #239 #231 #240
2026-06-09 01:33:17 +08:00
rustmailer
3bfc080258
bump to 1.5.1
2026-06-07 18:21:07 +08:00
rustmailer
c3a725770c
fix: reconnect and retry IMAP batch on BrokenPipe/network errors
2026-06-07 18:18:37 +08:00
rustmailer
c736afffb0
fix: account deletion times out #291
2026-06-07 15:34:38 +08:00
rustmailer
aebb94ee4e
fix: preserve non-stored search fields when updating envelope tags
...
update_envelope_tags lost f_body, f_from_text, f_to_text, f_cc_text,
f_bcc_text, f_attachment_name_text and f_attachment_name_exact because
they are not STORED and field_values() skipped them during delete+add.
Rebuild these from stored counterparts and the blob-store EML.
2026-06-05 09:13:25 +08:00
rustmailer
769630f9d7
Merge branch 'main' of https://github.com/rustmailer/bichon
2026-06-04 23:46:28 +08:00
rustmailer
368b18c45f
bump to v1.5.0
2026-06-04 23:46:25 +08:00
rustmailer
a2a51a2037
feat(imap): add message size check before download
2026-06-03 21:17:35 +08:00
rustmailer
4d783d5301
Update Cargo.lock
2026-05-31 06:05:50 +08:00
rustmailer
4172f11f00
Update Cargo.toml
2026-05-31 06:05:41 +08:00
rustmailer
257736a47b
fix: add in-memory dedup cache to prevent duplicate emails before indexing
...
Use (account_id, mailbox_id, content_hash) as dedup key with time-based
eviction to bound memory at ~50MB. Check happens before mail parsing,
so duplicate emails skip all expensive work entirely.
- Populate cache from Tantivy FAST columns on startup (7-day window)
- Evict oldest 1/4 of entries when exceeding 300K capacity
- Graceful degradation: populate failure → empty cache, still works
2026-05-31 06:04:58 +08:00
rustmailer
1346dd216a
fix: "No body available" #262
...
When the request returns an empty body, choose to skip it and print the account ID and UID information, leaving it for the user to investigate themselves. Otherwise, the IMAP download process will be blocked by this.
2026-05-29 16:43:38 +08:00
rustmailer
d40ba90b54
fix: inline attachment detection and account-scoped export
...
- Treat MIME parts with Content-ID but no Content-Disposition as inline
- Add account_ids filter to CLI export search to avoid pulling all accounts
- Skip failed emails during export instead of aborting the entire batch
2026-05-29 16:13:19 +08:00
rustmailer
048d5f361c
fix: Cant migrate with version >= 1.4.0 #277
2026-05-28 22:49:24 +08:00
rustmailer
4597df515a
Update content.rs
2026-05-28 17:55:13 +08:00
rustmailer
f4be4a2e8c
bump to 1.4.1
2026-05-28 17:49:18 +08:00
rustmailer
4a3c42c1eb
fix: HTTP Error 500 Internal Server Error: Failed for 58344335-2e86-4009-979d-6da0331bff63 - Failed to export an email. Aborting process... #275
2026-05-28 17:47:10 +08:00
rustmailer
8fcb55320f
Update README.md
2026-05-28 02:09:58 +08:00
rustmailer
86869ac848
Update release.yml
2026-05-26 20:11:49 +08:00
rustmailer
38453accc6
Update release.yml
2026-05-26 20:07:40 +08:00
rustmailer
a60b2c7dc4
Update release.yml
2026-05-26 20:02:55 +08:00
rustmailer
8e46c7a162
fix: use valid IMAP UID SEARCH instead of BEFORE in UID FETCH for incremental sync
2026-05-26 19:42:26 +08:00
rustmailer
1a615e1c45
bump to v1.4.0
2026-05-26 15:27:34 +08:00
rustmailer
83dd9cdd6b
perf: optimize IMAP account fetch flow
2026-05-26 15:23:34 +08:00
rustmailer
f30cd66e00
feat: remove folder limit
2026-05-26 15:22:14 +08:00
rustmailer
4bd714a670
chore: remove custom global allocator
2026-05-26 15:20:59 +08:00
rustmailer
c0a63a1e3c
feat: enhance autoconfig detection
2026-05-26 15:19:39 +08:00
rustmailer
04a022e850
add features endpoint
2026-05-24 20:31:58 +08:00
rustmailer
f9c2fc77ff
feat(core): wire up attachment text extraction in IMAP sync pipeline
2026-05-24 19:52:28 +08:00
rustmailer
ec3e842bbb
chore: add trace logging for duplicate email diagnosis #214
2026-05-24 17:27:01 +08:00
rustmailer
7311529908
bump to v1.3.0
2026-05-24 16:50:15 +08:00
rustmailer
0792bb546d
perf: reduce tokio worker thread blocking to improve responsiveness on low-core machines
...
- Switch memdb durability from Full to Batch(100) with 10s flush worker
- Offload BlobManager fjall writes to spawn_blocking
- Wrap Tantivy commit operations in block_in_place
- Flush memdb WAL on graceful shutdown
2026-05-24 14:34:16 +08:00
rustmailer
0be2670600
update
2026-05-24 02:37:22 +08:00
rustmailer
575f851cfb
update
2026-05-24 02:27:52 +08:00
rustmailer
61430b72b0
feat(core): add ext module with EventBus and AttachmentTextExtractor traits
2026-05-24 02:04:28 +08:00
rustmailer
15c0cfc1d9
Update README.md
2026-05-23 15:57:39 +08:00
rustmailer
ea8c493374
Update .gitignore
2026-05-23 15:41:39 +08:00