r11 - 07 Jul 2005 - 14:02:42 - LisaDusseaultYou are here: OSAF >  Jungle Web  >  ObsoleteDocuments > ChandlerDiscussionTopics > EmailIssues > EmailFeatureClusters

Email Feature Clusters

by DuckySherwood for ChaoLam

This page talks about dependencies between email features. Chao and I will use this to figure out which email features should go into which release(s). (This is essentially an internal document that I'm letting other people see, more than a document designed for wide collaboration.)

< Current OSAF Thinking >

There are a number of email features that other features depend upon. These are listed below.

POP/IMAP/SMTP/SSL/MIME/SMIME

These are all extremely difficult to do because they require interoperating with a bunch of different implementations of protocols. I strongly suggest that we not start from scratch, but use code that someone else wrote.

This means that we need to explore a number of versions of open-source code, being sensitive to the licensing. Then we need to pick one; we might need to "wrap" it appropriately to make it work with Python.

These libraries are needed for (among other things):

  • pre-fetch bodies of messages in background
  • load headers first
  • keep message bodies on IMAP server, cache locally
  • download only specified folders
  • show % of quota used
  • move messages between remote and local
  • expunge on delete option
  • attachments
    • display inline
    • open
    • choose helper app
    • manage attachments well
  • manually poll server

threading messages

HTML rendering

There's been talk of using something other than wxWindows' HTML renderer , well, the wxHTMLWindow is ugly. Leading candidates are Gecko and wxMozilla. [Chao: wxWindows is also looking to improve this with native components on mac (safari) and windows (IE)] HTML rendering is required to:
  • display HTML messages
    • display images inline
    • rewrap lines nicely
    • set style sheet
  • compose HTML messages
    • allow adding/subtracting a level of quoting
  • strip HTML formatting (not so see tags, but only the plain text)
  • strip extraneous quotes
  • show quoted material in a different color
  • show quoted material with vertical bars
  • switch between compose formats on the fly
  • enable/disable iframe
  • underline misspelled words inline (requires spell checker)
  • underline grammatical errors (requires grammar checker)

templates

  • simple templates
    • signatures
    • needed for auto-suggest
    • reply/forward with template
    • compose new message starting with template
    • complex templates
      • auto-suggest/"mail merge" features (e.g. "Dear $FromName")
      • complex signatures
      • customized citation line (uses same UI?)
      • reply/forward with template
      • compose new message starting with template

Agents

  • Filtering framework
    • API for probabilistic filtering and virus scanning
    • sharing filters (note security issues)
    • (huge number of filter actions and conditions)
    • vacation messages
    • run filters when X happens
    • auto-respond
    • auto-suggest
    • named filters (useful for import/export/sharing)
      • named sets of filters
    • filter import/export/sharing
    • filter manually, on incoming, on outgoing
  • Time-delayed actions (see also threading?)
    • Poll server every X minutes
    • delete from server in X days
    • delay sending message until X
    • delay notifying until X
    • delay displaying message until X
    • automated backups

Tasks

  • easy creation of a Task from a message

Contacts

  • add sender to Contacts list
  • choose TO/CC/BCC address from Contacts
    • choose one of several email addresses for a contact
  • nicknames
    • group nicknames
      • filter condition: "is in group nickname"
      • hierarchical group nicknames (handy for filters)
    • different nicknames for different email addresses e.g. jimHome and JimWork?
  • set attributes (probably already exists)
    • filter condition "sender has attribute X" e.g. "sender has attribute category=Friends"
    • add sender to Contacts wtih category (e.g. set category=Friends)
  • autocompletion
  • blacklists
  • whitelists
    • add sender to whitelist
    • whitelist people user sends to
  • preferred reply format
    • filter action: set reply format based on correspondent's preferred format

smart parsing

  • automatic recognition of names/phone#s/other Contact info in messages
  • add appointment to calendar (with prompt!)
  • add task to task list (with prompt)

return receipts

  • acknowledge/request manually
  • acknowledge/request automatically for
    • everybody
    • whitelist
    • same domain
    • people flagged in Contacts

mailing list manager

  • reply-to-list button
  • better whitelisting

autocompletion

  • autocomplete email addresses based on {Contacts, past senders, past recipients}

security

  • public folders
  • Andy's secure email
  • digitally signed email

General application framework and wigetry

  • queries
    • saved queries (so can "move to a different folder")
    • full-text search of all email messages
  • change attributes e.g. read/unread, category, flags
  • delete messages
  • spawn another window
  • OutlineTableView?
  • Media handlers (for attachments, Chandler Items that are shared)
  • sharing/collaboration (for sharing filters)
  • control/command-A to select all
  • spellchecking
    • in multiple languages
    • with easy sequence for fixing
    • with easy sequence for adding word to dictionary
  • single-column sort
  • multi-column sort

Hard things

Poor information and/or legal restrictions

  • Download AOL email
  • Download email from Exchange server
  • Download email from Hotmail
  • Download email from Yahoo

Difficult design; much thinking and scratching of the head

  • message annotation
  • line rewrapping
  • public folders
  • attachment management
  • sort by subject disregarding Re and Fwd
  • good wrapping of URLs

Many many corner cases to interoperate with

  • Multi-lingual support, including "re" and "fwd" turds
  • bursting digests

High difficulty per interested user

  • Palm conduit
  • Web interface
  • JavaScript
  • ActiveX?
  • Smart handling of digests without bursting

Medium difficulty per interested user

  • change signatures on the fly

Medium difficulty but high utility

  • import mbox format
  • switch personas on the fly (changing FROM address, .sig, style sheets, SMTP server, PGP key, etc)
  • good offline handling
    • queue messages for sending on return
    • download for offline use
  • flexible notifications
  • good/easy archiving
  • spellchecking that doesn't barf on URLs or email addresses

easy and Good Idea

  • pre-loaded filters and views
  • "remember attachment" checkbox
  • "done" button
  • "next message" button
  • import/export from/to mbox format

ProposedEmailFeatureImplementationOrder

MinimumEmailFeatureSet

SpecificDebatableEmailFeatures

< End current OSAF Thinking >

-- DuckySherwood OSAF - 07 May 2003

Edit | WYSIWYG | Attach | Printable | Raw View | Backlinks: Web, All Webs | History: r11 < r10 < r9 < r8 < r7 | More topic actions
 
Open Source Applications Foundation
Except where otherwise noted, this site and its content are licensed by OSAF under an Creative Commons License, Attribution Only 3.0.
See list of page contributors for attributions.