Exchange/Exchange26/Mail Priorities

From Evolution

Author: Shakti Prasad Sen <>


Contents

[edit]

Introduction

 Sometime it is required to alert the user to indicate the importance of
 a message. For example if someone wants to send a mail which needs
 some immediate action then he has to set the Importance/Priority of 
 that mail. 
 Users should be able to send emails with two properties enabled :
 Importance -  can mark mail as High, normal, and low priority.
 Sensitivity -  can mark the mail as Confidential, Private, Personal and Normal
[edit]

Headers to be Used

  The headers to be used for Importance are:
              X-Priority
              X-MSMail-Priority
              Importance
  The values for priority are: 1 (High), 2 (Low) and 3 (Normal).
  The values for X-MSMail-Priority are: High, Low and Normal.
  The values for Importance are: High, Low and Normal
  I really don't know if X-MSMail-Priority header field and Importance header field
  is really needed or not, but no harm adding all I feel.
  The default value is Normal.
  If the Importance is set (say High) the mail list view will show that mail in different color (Red for High).
  The header to be used for Sensitivity is:
              Sensitivity
  The values for Sensitivity header field are: Normal, Personal, Private and Company-Confidential
  The default value is Normal.
  Still no idea how to show the mails to user with sensitivity field set.
[edit]

Work Required

  I am planning to do it as a plugin. In the compose window there will be menu-item 
  named 'Exchange Options' (View->Exchange Options). When the user clicks on this menu-item 
  it brings the "xchnage Options" dialog (as shown in the screenshot). There the user can set
  the Importance and Sensitivity if he likes to set.
  The default value will be normal for Importance and Sensitivity as well.
  In plugins somehow I have to insert the headers to the exsting headers so that the exchange server
  would know the Importance and Sensitivity. Thus when a mail is composed using evolution client and
  viewed using Outlook client it will able to show the sensitivity and importance of that mail,if it
  is set. The vice-versa is also true.
  In evolution, the Importance will be shown by color difference. For example, a mail with Importance 
  as 'High' will be shown in red color in the list-view of the mail component.
  Still I have no idea how I will show the Sensitivity.
[edit]

Screen Shots

Screenshot of Outlook for setting "Importance".

Screenshot from outlook

Screenshot of Outlook for setting "Sensitivity".

[edit]

Proposed UI for Exchange

The image below shows the place of "Exchange Options" menu-item in a compose window. This place holder for this menu-item is a temporary one and we (with mailer guys) have decided to place it in 'Insert' menu as 'Send Options' menu-item. It is just the place holder and the name of the menu item, but the functionality would be same.

The image below shows the proposed "Exchange Options" dialog.

The image below shows the list view with red color when the priority is set.

[edit]

Observations so far ...

 1) It is possible to do it as plugins.
 2) It is possible to insert/add a new header to the existing header.
 3) X-Priority header doesn't work properly. 
        X-Priority: 1 -> Shows High priority [right behaviour]
        X-Priority: 2 -> Also shows High priority instead of Low [wrong behaviour]
        X-priority: 3 -> Shows normal priority [right behaviour]
 4) The X-MSMail-Priority header works fine. I will use this one (not X-Priority header then)
 5) The Sensitivy header works fine.
 6) I composed mails from evolution with all the combinations of Importance and Sensitivity and viewed
    it in Outlook and it works fine :)
 7) As of now there is no way for the user to view the Sensitivity from evolution client. For priority,
    Red is comming for High priority mails (also for low priority, may be a bug) and black for normal mails.


[edit]

From Code point of view

 1) I am planning to do it as a plugin. So I need to get the CamelMessageInfo structure first.
 2) At the time of writing hook we are planning to expose this structure to make use of it.
 3) I will use the using camel_message_info_set_user_tag() API to add some tags.
       By doing this I will 
            - Change the colour of the message (in tree-view) as the priority is set.
              Red   : High priority
              Black : Normal Priority
              Gray  : Low Priority (People usually don't set the priority to low. Anyway, I am taking care of it)
            - Add the label(at the time of viewing the mail) in the message showing the value
              of Importance and Sensitivity set.
 4) There is no way for the user to make out the sensitivity of a mail (from the tree-view). For this I am planning to 
    add one more column saying 'Importance/Sensitivity' (like 'From', 'Subject', 'Date', 'Size' etc columns). How is this idea???