Evolution Server Side Rule Support for Groupwise

To define a set of conditions and actions on mail server to be performed when an item meets those conditions. Server side Rules exist on the mail server itself and not only on the client system.

Server side rules allow user to process incoming message by directing them to server mailboxes other than your INBOX. So, no need to client system must be running always and must be configured to check for new message periodically for message rule to come into action.

For example: If you want an out-of-office message to be sent when you go to lunch or a meeting, then a message rule will work perfectly.

Using server side rules allow user to reduce the number of message in user's INBOX. Since the rules exist on the mail server, their effect is evident for any mail client.

Requirements:

1. To provide server side rule as part of plugin system.

2. To provide configurable option dialog window to allow user to create, delete and modify server side rules for an account.

3. User should be able to copy a rule to make a new rule.

4. User should be able to set the priorities for rules.

Functional Specification:

The following functionality is going to be implemented as a part of feature...

1. To create Rule.

2. Edit/modify Rule.

3. Viewing existing rule.

4. Copying a Rule to make a New rule.

5. To Delete a Rule.

While creating a rule the following parameters are required from user:

1) Name the rule.

2) Select an event. The event is the trigger that starts the rule.

3) Select the types of items that will be affected by the rule.

4) Add an action. The action is what you want the rule to do when it is triggered.

5) Save the rule.

6) Make sure the rule is enabled.

How to create/modify/delete/Copying/Enabling/Disabling Rule for an account.

1) Creating a Rule

    Click Edit -> Rules, then click New.
    Type a name in the Rule name field.
    Specifies the event, then click an event to trigger the rule.
    Click on items you want the rule to act on in the Item.
    Click Add Action, then click the action you want the rule to perform.
    Save the Rule by click on Save.

2) Editing a Rule

    Click Edit -> Rules.
    Click the rule you want to edit, then click Edit.
    Make changes to the rule.
    Save the Rule by click on Save.

3) Deleting a Rule

    Click Edit -> Rules.
    Click the rule you want to delete, click Delete, then click Yes.

4) Copying a Rule to make a New Rule

    Click Edit -> Rules, then click New.
    Click the rule you want to copy, then click Copy.
    Type the name of the new rule.
    Make changes to the rule.
    Save the Rule by click on Save.

5) Enabling or Disabling a Rule

    Click Edit -> Rules.
    Click the rule you want to enable or disable.
    Click Enable or Disable.

Design And Implementation

1. Add an option for â€oServer Side Ruleâ€? in Edit menu of tool bar â€oEdit->Ruleâ€?.

2. Configurable menu options dialog will display if user click on â€oEdit->Ruleâ€?.

3. Option for Creating New Rule, Editing existing Rule, Copying Rule, Deleting Rule and option for Disabling/Enabling Rules will be provided in option dialog window.

4. How to proceed:

   a) Establish connection with server. Authenticate with server, pop-up the password dialog if user has forgot to gave password.
   b) If connection made successfully with server, display GUI options dialog window for configurable options.
   c) Display options for different types of action and event configuration for rule.
   d) To provide options for to apply changes, cancel the changes and option for help.
   e) To display existing configured rules and retain the changes for configured rules.

To Create a new rule:

   a) To provide different types of configurable rules options and options for to specifies an action, event and items. 
      Action: The action is what you want the rule to do when it is triggered.
      Event:  The event is the trigger that starts the rule.
      Items:  Types of items that will be affected by the rule.
   b) Get configured parameters for rules.
   c) To check for connection with server if connection is available or not. If not, create new connection with server. Add check in case the connection request fails.
   d) To form 'loginRequest' as message for user authentication and send to server. Check 'loginResponse' if login request was successful or not.
   e) To form 'createItemRequest', for to creating Rules and check responses. Pass connection parameters and session id as an argument.
   f) To form 'modifyItemRequest',  for to editing Rules and check responses.
   g) To form 'removeItemRequest',  for to deleting Rules and check responses.
   h) To form 'getRuleListRequest', Get the list of Rule.
   i) To form 'executeRuleRequest', Immediately runs or executes a previously defined rule.
   j) To check response for each request. All request returns the success or failure of the method as a response.

List of Action on a Rule:

   1. Send Mail: Sends a prepared mail message to the recipients you specify when the rule conditions are met.
   2. Forward: Forwards items to one or more users when the rule conditions are met.
   3. Reply: Sends a prepared reply to the sender when the rule conditions are met. 
   4. Accept: Accepts an appointment, reminder note, or task when the rule conditions are met.
   5. Delete: Deletes any item when the rule conditions are met.
   6. Move to Folder: Moves items to a folder when the rule conditions are met.
   7. Mark as Private: Marks all items matching the rule conditions as private.
   8. Mark as Read: Marks all items matching the rule conditions as if they have been read.
   9. Mark as Unread: Marks all items matching the rule conditions as if they have not been read.

Current status of work:

   Working on the design specs for server side rule. Basic UI and UI changes Will soon be updated.

Apps/Evolution/Server_Side_Rule (last edited 2013-08-08 22:50:09 by WilliamJonMcCann)