mailarchiver v0.2.0
mailarchiver
A lightweight Crystal application that fetches, indexes, and archives email messages via POP3.
It stores messages as .eml files and indexes headers in SQLite with FTS5 for fast search.
Usage
TBC
Roadmap
-  
Basic POP3 client integration (via pop3clientshard)
-  
CLI fetcher command with UIDL-based pipeline 
-  
Atomic spool writes ( .part→ rename)
-  
Importer command - Parse message headers (From, To, Cc, Date, Subject, Message-Id)
- Enrich SQLite index with metadata
- Move .emlfiles fromspool/incominginto structured archive folders (archive/YYYY/MM/DD/)
 
-  
Duplicate handling & resilience - Enforce unique (account_id, uidl)andsha256
- Skip already imported messages gracefully
- Safe resume after crash
 
- Enforce unique 
-  
Search & reporting - Implement CLI search command using SQLite FTS5
- Show matches with basic metadata (date, from, subject)
 
-  
Show messages - Option to show .emlformatted as plain text (or as JSON)
 
- Option to show 
Next
-  
Configuration & CLI improvements - More options to manage accounts
- Verbosity/logging flags
- Exit codes aligned with UNIX conventions
 
-  
Packaging & distribution - Prebuilt binaries (Linux/Windows)
 
Future ideas
- IMAP support (optional)
- Web UI for browsing/searching messages
- Export to mbox/mboxrd for interoperability
- Simple REST API for integration with other tools
Contributing
- Fork it (https://github.com/chrisblunt-codes/mailarchiver/fork)
- Create your feature branch (git checkout -b my-new-feature)
- Commit your changes (git commit -am 'Add some feature')
- Push to the branch (git push origin my-new-feature)
- Create a new Pull Request
Contributors
- Chris Blunt - creator and maintainer
License
Copyright 2025 Chris Blunt Licensed under the Apache License, Version 2.0 SPDX-License-Identifier: Apache-2.0
Repository
  mailarchiver
Owner
  
  Statistic
  - 0
- 0
- 0
- 0
- 5
- about 1 month ago
- September 5, 2025
License
  Apache License 2.0
Links
  
  Synced at
  Wed, 29 Oct 2025 21:31:27 GMT
Languages