Toolbox
  • Printable version
 
Toolbox
LANGUAGES
Language
Personal tools
Wikipedia Affiliate Button
 

How I want to read my mail

From BrightByte

Jump to: navigation, search

This is a quick brain dump of the things I'd want my e-mail client to do. Some of it is possible with some clients or with ticket systems. But I want it all in one convenient, nice dektop client. Havn't seen anything even close.

First some stuff that is possible at least with some clients, just for completeness.

  • free tagging. i want an input field for tags shown along with the message text.
  • folder as tags. if i tag a message with a keyword, it should how up in the folder with the same name, if it exists. If i move something to a folder, it should get the folders name as a tag. Selecting a folder is equivalent to searching for the respective tag.
  • tags can be assigned automatically upon receiving a message, using filter settings as usual.
  • the main view shows all messages as a timeline. Messages with certain tags are hidden by default.
  • Messages I sent are shown in the same timeline as messages i receive. Messages I sent are tagged #byme.
  • When I reply to a message, my reply gets attached to the original message as a child, forming a thread. It gets the #reply tag. The message I replied to gets the #replied tag.
  • When I forward a message, the forward gets attached to the original message as a child, forming a thread. It gets the #forward tag. The message I replied to gets the #forwarded tag.
  • Messages I receive as CC are tagged #cc.
  • Free search: a single search box which per default searches over tags, words in the subject line, names of attached files, and From/To/CC fields. Full text search is optional.

So far we are pretty much in gmail-lande. But there's more. I want better threads.

  • Tags can be assigned icons. The icons are shown along the respective messages in the timeline. This is especially useful for implicit/automatic tags like #byme, #replym #forwarded, etc, which should have an icon per default.
  • When I receive a reply to a message I sent or received, it's attached to the original message as a child, forming a thread.
  • If a message in the timeline is a child of some other message, I'm able to expand the messages context "upwards", exposing all parents and siblings immediately. Children of those can be explored by expanding the respective nodes in the read. Note that this means that if a context is expanded, messages in this context could be shown multiple times in the same view: once in their "native" place in the top-level timeline, and several times as part of the context of some other message.
  • Threads can be re-arranged. Individual messages can be pulled out and made top-level, or be made children of some other message (placed in another thread). Similarly, top-level messages can be placed into any thread.
  • The implies that threads a manifest: the child/parent relation is part of the message object, not just imposed by the view.
  • I can freely attach notes to any message. Notes are treated as messages from me to myself (which they actually are, if you think about it). The are tagged as #note.

But I also want issue tracking features, to keep me organized:

  • Any messag can be make a task. A task has five states: postponed, waiting, current, due and done. These also act as tags.
  • when replying to a task, I can/must choose the tasks next state.
  • when receiving a reply to a task, the message display shows a prompt that allows me to choose a new state for the task.
  • tasks can have two timers: the postponed timer, and the due timer. When the postponed timer runs out, the task automatically goes from postponed to current. When the due timer runs out, the task goes from current (or postponed) to due.
  • timers can be set using a log scale slider (1 day, 3 days, 1 week, 2 weeks, 1 month, 2 months);
  • the timer slider can be split to define a range (between postponed date and due date); when moving the postponed (left) side, the range stays (estimated duration) stays fixed, i.e. the due date moves along. When moving the due date, the duration changes and the postponed date stays put.
  • children (descendants) of tasks can also be marked as tasks. When setting a parent task to "done" before all descenant tasks are done, this triggers a warning, but should still be possible. When completing the last sub-task of a parent task, I am automatically prompted if the parent task should also be marked as "done".
  • when writing a message, no matter whether fresh mail or reply or forward, it should be trivial to set it to "waiting" (waiting for reply), making the message a task.
  • when receiving a message, it should be trivial to set it to "postponed" (later) or "current" (todo).
  • I can switch to a calendar view, showing the activity periods and due dates for all tasks.
  • all info needed to do the above is stored in imap, including tags, filters, threading, and timers. For local mailboxes, an imap API is implemented on top of local files (barkelydb or something).

Now, wouoldn't that be nice?

(no comments yet)