r14 - 21 Jan 2004 - 11:53:54 - MimiYinYou are here: OSAF >  Jungle Web  >  ObsoleteDocuments > ChandlerDiscussionTopics > EmailIssues > EmailFeatureClusters > SpecificDebatableEmailFeatures

Debatable Email Feature Set

Significant Decisions Needed

  • What does the index view UI look like?
    • How do we help the user categorize and prioritize their messages? What algorithm/AI, if any, do we use to categorize/prioritize messages automatically (including anti-spam)?
    • What is the UI for threading messages?
    • What is the UI for grouping messages (what used to be done with folders)?
    • What is the UI for user-directed ad-hoc categorizing and prioritizing messages? How do we make the user-specified organization play nicely with the automatically-specified groupings and prioritizations?
  • How do we represent email messages which have elements of Tasks and Calendar Events?
  • What features will Contacts support? (Nicknames, hierarchical group nicknames, personas, easy "add sender", fast determination of membership in Contacts?)
  • What level of HTML composition will we support? (None, font styles, tables?)
  • What UI do we provide for managing attachments?
  • What types of notifications will we support?
  • How do we synchronize well with IMAP to avoid many of the IntrinsicIMAPIssues?
  • How do we (do we) share Chandler Items via email?
  • Which clients will we import from?

Deferred design issues


Debatable Features

Legend

The symbols in the Debateable Features section have the following meaning:
  • DONE Canoga feature
  • MOVED TO... Post-Canoga feature
  • ALERT! Not in Canoga or Westwood
  • QUESTION? Debatable feature
  • TIP A feature that needs design work to determine which of the possible options to use
  • TIP TIP A feature that needs lots of design work

Index View

Things Chandler needs to be able to display when showing an index view

  • Display message attributes
    • DONE read/unread
    • DONE sender
    • DONE subject
    • DONE account received through
    • TIP QUESTION? sharing/security properties
    • DONE delivery status: sendable, unsendable, queued, sent, unsent
    • DONE presence of attachment(s)
    • QUESTION? done/to-do
    • QUESTION? server status: on server, deleted from server
    • QUESTION? body size
    • QUESTION? attachment size
    • QUESTION? category
  • DONE 2-pane view
  • DONE 3-pane view
  • DONE Allow aggregating messages from multiple accounts
  • DONE Sort-by-subject which ignores all permutations of "RE:" and "FWD:"
    • MOVED TO... in all languages
  • TIP QUESTION? Sort-by-sender which combines all different accounts/names from one person (e.g. "Bob Smith" and "Robert Smith"). Requires some support in Contacts.
  • DONE A View that shows responses (outbound messages) mixed in with incoming messages
  • TIP DONE Modify/examine/delete current View (UI might be mildly tricky: people might think that deleting a View also deletes all the messages)
  • DONE Optionally show all messages with a specified property (e.g. "project") in expandable/collapsable groups (depends upon Chandler info-management features)
  • DONE Display arbitrary message attributes (e.g. "Read" or "Done")
  • TIP QUESTION? Automatic highlighting/coloring (perhaps with filters, e.g. "if TO only me, color it red")
  • TIP QUESTION? Optional support for showing a few lines of the message body (like Outlook does)
  • Upon opening, have the client set the "current message pointer"/selected message to (optionally):
    • DONE last read message
    • DONE earliest unread message
    • TIP QUESTION? first unread message in last unread group of messages (useful when people mark messages "unread" to mean "undone"); might be implementable as "last-read-message-plus-one
  • TIP DONE Thread messages
    • DONE using JWZ's algorithm
    • TIP TIP QUESTION? Summarize message threads (like Zest does)
    • TIP QUESTION? Optionally show threads in expandable/collapsable groups
    • TIP QUESTION? Optionally hide (or collapse) threads and sub-threads with no unread messages
    • TIP QUESTION? OSAF-designed combination or above
  • TIP QUESTION? Resend message (with or without editing first?)

Things the user can do when browsing index view

  • TIP TIP Show list of messages grouped somehow ("like folders")
    • TIP Allow changing View/"folder" (depends upon Repository)
    • DONE Save commonly used Views for reuse ("bookmarking")
    • DONE Switch current View
  • DONE Delete selected messages
  • DONE Allow opening message in its own window
  • DONE Select all
  • DONE one-click column sort
  • TIP QUESTION? multi-column sort (e.g. first by Category, second by read/unread, third by date. Eudora does multi-column sort differently on Mac and PC.)
  • Toolbar buttons for
    • DONE one-action (click or keystroke) to move to next message (i.e., message has pending actions, but I don't want to deal with it yet)
    • DONE one-action to move to previous message
    • DONE one-action to delete message
    • DONE one-action to mark as spam
    • DONE one-action to create a new message
    • DONE one-action to fetch new messages
    • TIP DONE one-action to move to next unread message
    • TIP QUESTION? one-action to mark "done" (i.e. get it out of my current view)
    • TIP QUESTION? one-action to file message (for those who want to "file" as they go)
  • TIP QUESTION? Allow the user to make a temporary grouping inside the mailbox for all messages matching a certain field (Eudora has this feature; it is hard to discover but VERY handy)
    • TIP When new messages arrive, Eudora resorts the mailbox -- losing the temporary grouping
  • QUESTION? find message by type-ahead (like Eudora does; again VERY handy but a little hard to discover)

Single-Message View

Single-Message Display

  • DONE Suppress display of most headers
  • TIP QUESTION? Show a number of important messages attributes, perhaps as tool tips (Note: this is similar to the list above for the index view, but we might want different things displayed in the single-message view)
    • read/unread
    • done/to-do
    • delivery status: sendable, unsendable, queued, sent, unsent
    • presence of attachment(s)
    • server status: on server, deleted from server
    • body size
    • attachment size
    • sharing/security properties
    • category
    • sender
    • account received through
  • Show quoted material
    • DONE With vertical bars indicating quotation level
    • DONE Rewrappable (which avoids "long line/short line/long line/short line" messages)
    • QUESTION? In a different color
    • TIP QUESTION? Strip out multiple > signs and extraneous verbose headers from forwards ("Zest lite")
  • QUESTION? Auto-rewrap split lines (as preferences option)
  • TIP MOVED TO... Show message annotation (depends upon annotation)
  • DONE Make URLs "live"
  • QUESTION? Handle long URLs gracefully
  • QUESTION? Show (in a separate windowlet) which filters are activated by this message (depends on filters)
  • View attachments inline (as preferences option)
    • DONE HTML
    • DONE plain text
    • DONE images
  • Support for multiple character encodings
    • DONE Basic Latin character encodings
    • QUESTION? Non-Latin single-byte encodings (e.g. Arabic, Hebrew, Korean)
    • QUESTION? Multi-byte encodings (e.g. UTF-16, Chinese)
  • TIP TIP Recognizers (which are not strictly an email feature, but which will get very heavy use in email) making various (TBD) text "live"
  • DONE Disallow pop-ups (Javascript, ActiveX?)

Things Chandler should let the user do when reading a message

  • TIP DONE Allow increasing size of text
  • DONE Change attributes of the message e.g. flagged, unread, category (generic Chandler info-management)
  • DONE Delete the message
  • Add sender to various lists (requires collaboration with Contacts)
    • DONE Contacts
    • TIP DONE whitelist (related to anti-spam; see anti-spam for a discussion of white and black lists)
    • TIP QUESTION? blacklist (related to anti-spam)
    • QUESTION? specified address book (which, as we implement Contacts, would probably mean "add to Contacts with X attribute")
    • QUESTION? specified group alias/nickname (depends on HierarchicalNicknames)
  • DONE Save message to a file
  • TIP TIP TIP create new Items (e.g. Task, appointment) based on Recognizer
  • TIP TIP TIP add new attributes to email message based on Recognizer
  • MOVED TO... TIP Annotate message
    • MOVED TO... TIP Hide message annotations
  • Switch to fixed-width by (at least one of following)
    • QUESTION? showing raw source of message
    • QUESTION? stripping HTML formatting (not so you'd see the tags, but convert to plain text)
    • QUESTION? button/menu option to switch between fixed-width and proportional-width
  • QUESTION? Button/menu option to unwrap and/or wrap poorly wrapped/unwrapped messages, including re-assembling poorly wrapped URLs
  • DONE Print current message

Possible Message Composition Features

Addressing a message

(Note: many of the features discussed in this section clearly are strongly linked to the Contacts features.)
  • DONE To, CC, BCC addressing
  • TIP DONE Switch personas/accounts on-the-fly ("personas" needs thought)
  • TIP DONE Auto-completion of email addresses
    • DONE from email addresses in Contacts
    • DONE from first name/last name in Contacts
    • QUESTION? from nicknames in Contacts
    • QUESTION? from prior recipients of your messages
    • QUESTION? from prior senders
  • QUESTION? Allow different nicknames for different email addresses for the same person (e.g. jimhome and jimwork)
  • DONE Group nicknames (aliases) (depends upon Contacts)
  • TIP QUESTION? Hierarchical group nicknames. (depends upon HierarchicalNicknames)
  • Addresses can be chosen from address book
    • DONE with recipient's preferred email chosen by default
    • DONE easy to change to one of recipient's non-primary accounts

Composing a message

  • Support for composing in
    • DONE plain text
    • DONE HTML subset including bold, italic, underline, images, font changes, color changes, and bullets.
    • QUESTION? advanced HTML (including tables)
  • DONE Switch between HTML and plain-text on the fly
  • DONE Good indicators for showing when in HTML and when in plain text
  • DONE Allow user to add/subtract a level of quoting
  • QUESTION? Reply with saved stationery
    • QUESTION? Support for stored style sheets
    • QUESTION? Support for stored text (without style)
    • QUESTION? Support for stationery (styles and content)
    • QUESTION? Customizable templates ("mail-merge" type features, the content of a message)
  • QUESTION? Allow signatures
    • QUESTION? Single signature
    • QUESTION? Multiple signatures selectable on-the-fly
    • QUESTION? Signatures editable inline without changing the original
  • Spell-checking
    • QUESTION? inline (e.g. underlining misspelled words)
    • QUESTION? batch (not needed if inline is available)
    • QUESTION? in multiple selected languages
    • QUESTION? with an easy mouse sequence/keybinding for correcting
    • QUESTION? with an easy mouse sequence/keybinding for adding a word to the dictionary
    • QUESTION? that doesn't check URLs or email addresses, even when put in angle brackets
    • QUESTION? that doesn't check words recognized by Recognizers
  • DONE Periodically auto-save draft
  • DONE Auto-categorize unsent messages as Drafts
  • QUESTION? Warn if the message has an empty subject or body
  • QUESTION? Selection of template/stylesheet/signature

Possible Features Related to Creating a Response

This area is for listing all the possible features that an email client might have that are specifically related to creating a response, as opposed to a new message "from scratch".

Creating the response

  • Reply to message(s), with To, Cc, Bcc filled in based upon reply action:
    • DONE Reply-to-sender (use Sender if present, otherwise From)
    • DONE Reply-to-all (use Reply-* headers if Reply-To is present, otherwise send to From address with other addresses in Cc)
    • QUESTION? Reply-to-list (use List-* headers if present, otherwise ask list manager; optionally set Cc to the sender) to choose among To/Cc/Bcc/none radio buttons for each one; buttons are initialized to the client's best guess, so the user only has to change where the client got it wrong)
  • TIP QUESTION? Bind various reply actions to "Reply" button (reply-to-all, reply-to-list, reply-to-sender) based on message characteristics
  • QUESTION? Eliminate own address from Cc list (perhaps this should be an option?)
  • DONE Forward message(s) with or without attachments
  • QUESTION? Reply/forward with template text in response/forwarded message

Quoting

  • DONE Optionally include or quote original message(s) in response
  • DONE Quot use excerpt bars (i.e. supporting format-flowed)
  • DONE Auto-citing (e.g. "On 29 Feb, 2038, Mabel Garcia said:")
  • QUESTION? Optionally strip off signatures when forwarding/replying

Other

  • TIP QUESTION? Responses inherit some attributes (list TBD) from original message (so that responses will be "filed" with the original message)
  • QUESTION? Persona (particularly the return address) set automatically based on which account the original message came through (or possibly set via filter rules, with the default being to chose the account of the original message?)
  • QUESTION? Auto-format reply (HTML/RTF/text) in same format as received message(s) or selectable via filters (e.g., always reply to the mailing list in text even if someone sends a message in HTML)

Attachments

  • Receive attachments
    • DONE standard attachments (MIME)
    • MOVED TO... encrypted attachments (S/MIME)
  • Manipulate attachments
    • DONE Open attachment
    • DONE Save attachment to file
    • DONE Delete attachment
    • TIP QUESTION? Organize attachments
      • modify metadata (e.g. assign to a project, associate with an appointment)
      • group
  • Send attachments
    • DONE Allow sending standard attachments (MIME)
    • TIP DONE Allow sending Chandler "Items" and views as attachments
    • MOVED TO... Allow sending encrypted attachments (S/MIME)
    • MOVED TO... Checkbox near header for "remember to attach document"
  • TIP Specify "helper applications" for attachments
    • Do we use a format-to-application mapping from the OS, from the default browser, or do we do it ourselves?

Account Management

Users might want to use an email client to check email from multiple accounts. The user might want to specify the following things differently for different accounts or personas:

  • Persona characteristics
    • DONE "Real name" (e.g. "Kaitlin Duck Sherwood" or "Ducky Sherwood")
    • DONE Return address
    • QUESTION? Default signature (depends on signature)
    • QUESTION? Default style sheet (depends on style sheets)
  • Retrieving messages
    • DONE Server name
    • DONE Email ID (e.g. "ducky")
    • DONE When to delete messages: {never, immediately, after specified number of days}
    • Type of account
      • DONE POP3
      • DONE IMAP
      • MOVED TO... Exchange later, maybe Westwood
    • TIP DONE Do not download large messages
      • QUESTION? based on size of message
      • QUESTION? based on whether it is an inline attachment or not
    • DONE Use SSL {TLS, alternate port} for download {always, never, when possible}
    • DONE Authentication type {IMAP: Password, NTLM/SPA, DIGEST-MD5, CRAM-MD5; POP: Kerberos, APOP; SMTP: password, get-before-send}
    • DONE Remember password {yes/no}
    • Retrieve mail from server (poll):
      • DONE manually (e.g., a "check mail" action)
      • DONE at startup and a {specifiable} interval thereafter or not (i.e. only manually)
    • TIP QUESTION? Specify filter set on a account-by-account basis (depends upon filters)
    • QUESTION? Reorder messages to download smaller messages first {yes/no}
    • QUESTION? Download partial message or message headers and display before downloading bodies (for users on slow connections)
      • Pre-fetch the body of messages in background (depends upon partial message downloading)
    • QUESTION? Set how to notify user on per-account basis (depends upon email notifications)
    • DONE Select which folders to make local copies of (for offline work with IMAP folders)
  • Sending messages
    • DONE Specify SMTP servers
    • DONE Use secure connection {always/never/when possible}
    • DONE Server authentication type {NTLM/SPA,DIGEST-MD5,CRAM-MD5,Login,POP Before SMTP}
    • Remember password {yes/no} (probably should be same as "Remember password" under retrieving messages)
  • MOVED TO... Specify IMAP folders to subscribe to
  • MOVED TO... Specify IMAP folders to check for new messages in automatically

Global Preferences

This section lists all the possible things that users might want to set "globally" or as the default behavior:
  • QUESTION? Set default How to notify user (depends upon notification)
  • TIP Inline images default (note that "inline" means that the image is displayed in-line; such an image may be local (in the message itself) or remote (accessed over a network))
    • DONE always enable
    • QUESTION? always disable completely
    • QUESTION? enable local images only
    • QUESTION? show placeholder, click on placeholder to display image inline {on/off}
  • QUESTION? Enable/disable vacation message
  • TIP QUESTION? Enable/disable sending Chandler attributes with responses
  • TIP QUESTION? Enable/disable stripping Chandler attributes from incoming messages
  • QUESTION? Allow user to specify which headers to suppress when displaying message
  • QUESTION? Allow user to specify which headers to suppress when replying/fowarding
  • QUESTION? Enable/disable responses inheriting attributes from original message
  • QUESTION? Select SMTP server based on user's current location
  • DONE Enable/disable dangerous/spammy display features (see above)
  • QUESTION? Set minimum text size
  • TIP QUESTION? Set selection behavior in reply composition:
    • cursor above or below quoted text?
    • quoted text selected (highlighted) or not?

Possible Email Notification Features

Ways to notify user of new mail:
  • DONE Audio alert
    • QUESTION? with user-specified sound (perhaps via filters)
  • DONE Visual notification (e.g., in System tray)

Email Import

  • DONE mbox (Eudora, with toc; Netscape, with metadata)
  • TIP QUESTION? (Decision on others deferred until results of Ecosystem project/SynchML are clearer.)

Security

  • TIP DONE Enable/disable specific HTML and email features based on security risk
    • DONE "web bugs" -- externally loaded resources (which can be images, URLs, or even style sheets)
    • QUESTION? scripts (Javascript, ActiveX)
    • QUESTION? redirection
    • QUESTION? attachments from unrecognized correspondents
    • QUESTION? executable/infectable attachments (e.g. exe, pif, bat, etc.)
  • DONE Support for secure connections (e.g. "no passwords in cleartext")
  • MOVED TO... Public key infrastructure

Offline Features

  • DONE Cache IMAP messages locally
    • DONE Only check specified folders
  • DONE Don't continuously warn about network being down when offline
    • QUESTION? Allow user to explicitly say that they are going offline
  • DONE Queue outgoing messages
  • DONE Track deletes and other transactions while offline
  • DONE Automatically send queued messages when online
  • TIP DONE Automatically synchronize with IMAP server when online
  • DONE Deal gracefully with accounts "offline" due to inaccessibilty (e.g., a work account from home)


Features we want to wait on discussing

The following are things that we know we will need to deal with at some point, but aren't concerned about dealing with them right now.

TIP TIP QUESTION? Archiving (big topic)

Archiving and backing up data is important in Chandler in general, but email is one of the biggest and heaviest users.

In particular, if we keep annotations separate from the original message and overlay them, then old messages will never change. If you want to keep a message from six months ago around, sysadmins shouldn't have to back that message up more than once. Right now, with messages frequently merged together into one big file (like Outlook's .pst file), sysadmins have to back up all the messages every backup cycle.

This is probably more important for Westwood than Canoga because of the centralized Westwood servers.

TIP TIP TIP Filters

Filtering is a huge issue with twisty, looping branches in the decision tree.
  • TIP DONE Spam filtering
  • TIP DONE Categorizing messages before reading (to help prioritize and keep context-switching down)
    • TIP QUESTION? via "traditional" filters (which implies a traditional UI for filter-building)
    • QUESTION? via arbitrary Python (in Agents)
    • TIP QUESTION? with a learning classifier system like iFile
    • TIP QUESTION? with our own algorithms, e.g. based on what category the sender has in Contacts, whether it's a mailing list, whether it comes from the same domain, etc.
  • TIP QUESTION? Anti-virus
  • DONE Button to mark as spam for adaptive learning algorithm (depends upon spam filters)
    • TIP QUESTION? Report messages to an external collaborative filtering system (e.g. SpamCop?)
  • QUESTION? Show which filters are triggered by a particular message (depends upon filters)
  • TIP TIP QUESTION? Share filters (which requires safe filtering)
  • TIP QUESTION? Specify filters on an account-by-account basis
  • QUESTION? Allow user to disable pre-loaded filters (e..g spam filter) * Mailing List Manager (to help precision of spam filter)
    • TIP QUESTION? Mailing list manager where users can specify how to recognize mailing list messages
      • Information in List-* headers
      • From address address
      • Recipient address address
      • Subject contains string (e.g. "[Design]")
      • Other headers contain specific information (prior to the specification of the List-* headers, mailing list daemons often inserted their own X-* headers)
    • TIP QUESTION? store list information (not needed except to convince people to use the mailing list manager)
      • list address
      • list owner/administrator's email address
      • unsubscribe address
      • list purpose (maybe by saving the first message)

TIP TIP Search

Email will depend heavily on search capabilities, but search is probably better handled at a higher level.

Return Receipts

  • TIP MOVED TO... { Acknowledge/request } return receipts (depends upon return receipts)
    • MOVED TO... automatically for everybody
    • MOVED TO... when prompted for everybody
    • DONE never * MOVED TO... Track return receipts


Features that we think will not get into Westwood

  • Index view
    • ALERT! Allow each column to be customizable by format and fonts
  • Single message display
    • ALERT! MOVED TO... Show list of suggested responses (see details)
    • ALERT! Override formatting with user's style sheet
    • ALERT! Display face header as image
    • TIP ALERT! Accumulate list management information (List-* headers) and display actively (e.g., as buttons at the bottom of the display area)
    • ALERT! Since redirected messages are dangerous, detect such a message and highlight how it was redirected
    • ALERT! Bounce message(s) to sender (as in the Mail.app option: send a reply that looks like the name got a SMTP 550 "user unknown" hard error)
    • ALERT! Reply via instant messaging
    • ALERT! Redirect message(s)
    • View inline
      • ALERT! PDF
      • ALERT! Flash
    • ALERT! Multiple languages can be displayed in the same view
  • New message composition
    • ALERT! in RTF
    • ALERT! Auto & manual entry of message keywords when composing
    • ALERT! Grammar-checking
    • ALERT! Support for external editors
    • ALERT! Support for emacs and vi key bindings
    • ALERT! Auto-suggestion of word completion (type-ahead)
    • ALERT! Don't send message before a certain date/time
    • ALERT! Don't send message until task complete
    • ALERT! Don't-send-yet button (to prevent accidentally sending before done)
    • ALERT! Support for deffering sending until specified time/date
  • Responses
    • ALERT! Incorporate more than one message into a reply/forward, combining/merging headers as appropriate
    • ALERT! Reply-to-selected (use address(es) already highlighted/selected in source message(s))
    • ALERT! Reply-by-selection (pop up a dialog with all the addresses in the headers and allow the user
    • Quoting
      • ALERT! Included in entirety with minimal quotation marks (as per Outlook's default quoting style)
      • ALERT! Only marked with leading ">" marks
      • ALERT! Marked with leading "XXX>" mark, where XXX are initials of the writer
      • ALERT! Marked with a user-setable prefix (permitted by some email clients, but can lead to chaos)
    • ALERT! Customization of auto-citation line
    • ALERT! If subject line (and body?) is changed, ask the user if this is a new message instead of a reply (or just silently strip the In-Reply-To: header?).
  • Notifications
    • ALERT! Select different notifications based on location (e.g. don't want "work" alerts when "at home" or vice versa)
    • ALERT! Pop-up message, possibly with action buttons
    • ALERT! Open message in its own window
    • ALERT! Instant message (with brief summary)
  • Account management
    • ALERT! Specify disk space quotas
  • MOVED TO... Return Receipts
    • { Acknowledge/request } return receipts (depends upon return receipts)
      • ALERT! automatically for whitelist only
      • ALERT! when prompted for whitelist only
      • ALERT! automatically determined on a per-user basis (which means an extra field in the Contact)
    • ALERT! TrackMailWorkflow
    • Mailing list utilities
      • ALERT! Removing duplicates (this might happen automatically if messages are indexed by Message-ID)
      • ALERT! Bursting digest messages
  • Global preferences
    • ALERT! Auto-select SMTP server {yes/no}
    • ALERT! Enable all images images for whitelist (e.g., "is in address book")
    • ALERT! Enable all local images, remote images enabled for whitelist
    • ALERT! Wait a specified "cooling off" period before actually sending a message
    • ALERT! Set default for "attachment checkbox" (see Possible Message Composition Features)
    • ALERT! HTML display enable/disable default
  • Other
    • ALERT! Show accomplishments -- statistics on how many messages were received, read, deleted, and dismissed in a session. One potential use of these stats is to display them at the end of a session (or day) to give the user a sense of accomplishment.
    • ALERT! import from AOL, webmail accounts


Dependencies

  • UI to support a good index view
  • Document architecture for all views and button layout
  • Repository
    • for storing messages
    • queries on email views
    • search
  • Networking framework for IMAP/POP/SMTP support
  • Email libraries
  • HTML presentation and composition libraries
  • Contacts parcel for addresses
  • Agent/Notification framework for
    • Periodic background mail retrieval
    • Filters
  • Data model for Email and, to a lesser extent, Tasks and Calendar Events
  • Printing

-- DuckySherwood - 07 Oct 2003

Edit | WYSIWYG | Attach | Printable | Raw View | Backlinks: Web, All Webs | History: r14 < r13 < r12 < r11 < r10 | 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.