Inspiration
Filtering through e-mails can be frustrating at times. The existing clients can be awkward to use, or locked behind expensive subscription services. Automation would be easier if we could just treat it like any other file-based database.
What it does
Exposes your inbox as a virtual directory so that you can use standard data extraction tools on it. Folders are mapped to folders, individual e-mails to files. You can send e-mails by creating a file with the same name as the recipient address.
How I built it
I wrote a Win32 native application to project a virtual filesystem using the Windows Projected File System API. Network communication used libcurl for IMAP and SMTP.
Challenges I ran into
The libcurl API has a lot of quirks, especially with less tested protocols like IMAP and SMTP. Random crashes, memory corruption, etc., as is typical with hastily written C++ code.
Accomplishments that we're proud of
It works, somehow, on a live e-mail server. No data loss occurred.
What we learned
Libcurl has a lot of oddities in its API. I had not properly explored the IMAP specification until now.
What's next for EmailFS
Sorting, filtering, proper (validated) sending support (basic sending support is already implemented).
Built With
- c++
- libcurl
- win32