docs.rs failed to build ma-0.10.3
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
Visit the last successful build:
ma-0.9.0
ma
Mail Archivist. Downloads all mail from multiple accounts into a SQLite database, for backup and analysis.
Usage
Environment
- install rust: https://www.rust-lang.org/tools/install
- ensure
$HOME/.cargo/binis in your$PATH cargo install ma
Initial
cd $mail_archive_directory(any directory in which you wantmato maintain the mail archive)ma fetch(will generate initial config file and then exit with a failure to connect)- Create an App Password with your provider, for example:
- Google/Gmail: https://myaccount.google.com/apppasswords
- Fastmail: https://app.fastmail.com/settings/security/integrations
- Runbox: https://runbox.com/mail/account_security
$EDITOR ma.toml(fill in the correct values in the generated config file)ma fetch(should now work)
Routine
Like with git, you can either cd into $mail_archive_directory or provide
it to ma as an argument, like so:
ma --dir $mail_archive_directory fetchto updatesqlite3 $mail_archive_directory/ma.dbto enjoy exploring your mail archive with SQL!
TODO
- fetch all messages from all mailboxes from all accounts
- store raw messages in content-addressed file tree (
dump/[hash..2]/[hash].eml.gz) - insert headers and text body into SQLite
- store state, the highest seen msg per account per mailbox, and avoid re-downloads
- fetch directly to database and rebrand file-tree storing as
export - snapshot (log?) mailboxes and message locations
- poll/idle for new messages (maybe not necessary, since once can just periodically re-fetch)
- post-update hooks (Can be used for custom notifications, aggregate query reruns, etc.)
- timeouts
- parallelize fetch
- parallelize import/export
- example analytics
-
Receivedbased route trace graph -
From -> Todirected graph with edges weighted by- frequency
- msg size
-
- export into
InfluxDBor something similar that Grafana can read from
Questions
Automatic Address Book
How to measure confidence in sender/receiver identity, given that:
- any name can have any address
- any address can have any name