I just finished a small personal project: a self-hosted web app which stores and indexes my archived emails. None of the existing options I tried were very good so I made my own. A simple Rails app that ingests .eml files and stores the text in postgres for full-text search.
I learned a lot about text encodings, multipart emails, inline attachments, postgres' tsvector/tsquery, etc. I'm particularly proud of how I was able to use `WITH RECURSIVE` to get an email's entire thread, which seems basic but the other archive apps I tried didn't have that feature.
I learned a lot about text encodings, multipart emails, inline attachments, postgres' tsvector/tsquery, etc. I'm particularly proud of how I was able to use `WITH RECURSIVE` to get an email's entire thread, which seems basic but the other archive apps I tried didn't have that feature.