Differences between revisions 5 and 6
Revision 5 as of 2010-04-26 11:43:04
Size: 15630
Editor: kanika vats
Comment:
Revision 6 as of 2010-04-27 10:13:46
Size: 18364
Editor: kanika vats
Comment:
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
#pragma page-filename DEV/versions/10715204 #pragma page-filename DEV/versions/10715206
Line 45: Line 45:
 * h6. '''SubscribeTo List'''
          '''Actor'''         :    List User,Moderator
          '''Goal'''          :    To subscribe to a list with Dynamic Sublist feature enabled.
 * h6. '''SubscribePeopleTo List'''
          '''Actor'''         :    Moderator
          '''Goal'''          :    To subscribe People to list 
Line 52: Line 52:
 1. Moderator selects whether he/she wants to send an invitation message or not and sends invites by entering the email id(or list of email id) through the Mass Subscription page.
 1. Or if a user wants to subscribe then he/she fills all details including the 'ESSAY' portion(if the essay feature was enabled during List Creation) on the ListInfo page.
 1. Moderator selects whether he/she wants to send an invitation message or not and sends invites by entering the email id(or list of email ids) through the Mass Subscription page.
Line 55: Line 54:
 1. If the list is a Dlist then system also updates the subscriber info in the database associated with the Dlist. 
 * h6. '''UnsubscribeFrm List'''
          '''Actor'''         :    List User,Moderator
          '''Goal'''          :    To unsubscribe from a list with Dlist feature enabled. 

'''          Basic course of events''':    

 1. Moderator decides to unsubscribe a spammer or a subscriber not abiding to the rules of the list or a subscriber for any specific reason.
 1. He unsubcribes the person by entering the person's email id on the mass removal page.
 1. If the list is a Dlist then the system also updates the subscriber info in the database associated with the Dlist. 
 * ====== h6. ======<<Color2({{{
UnsubscribePeopleFrm List
}}}
, col=#003366)>>
<<Color2(&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;, col=#000000)>><<Color2({{{
Actor
}}}
, col=#000000)>><<Color2(&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : &nbsp; &nbsp;Moderator, col=#000000)>><<Color2(&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;, col=#000000)>><<Color2({{{
Goal
}}}
, col=#000000)>><<Color2(&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; :&nbsp;&nbsp;&nbsp; To unsubscribe a Person or Group &nbsp;from a list, col=#000000)>><<Color2('''&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Basic course of events''', col=#000000)>><<Color2(:&nbsp;&nbsp; &nbsp;, col=#000000)>> 1. Moderator decides to unsubscribe a spammer or a subscriber not abiding to the rules of the list or a subscriber for any specific reason.
 1. He unsubcribes the person or group by entering their email id on the mass removal page.
Line 65: Line 68:
 1. Or a List user decides to unsubscribe from a List due to some reason.
 1. List User goes to the member Options page.
 1. Selects the unsubscription option.
 1. If the list is a Dlist then systemSystem updates the database.
 * ====== h6. ======<<Color2({{{
GetSubscribedTo List
}}}
, col=#003366)>>
<<Color2(&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;, col=#000000)>><<Color2({{{
Actor
}}}
, col=#000000)>><<Color2(&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; :&nbsp;&nbsp;&nbsp; List User, col=#000000)>><<Color2(&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;, col=#000000)>><<Color2({{{
Goal
}}}
, col=#000000)>><<Color2(&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; :&nbsp;&nbsp;&nbsp; To subscribe to a list&nbsp;, col=#000000)>><<Color2(&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;, col=#000000)>><<Color2({{{
Basic course of events
}}}
, col=#000000)>><<Color2(: &nbsp; &nbsp;, col=#000000)>> 1. User decides to subscribe to a List.
 1. He/she fills all details including the 'ESSAY' portion(if the essay feature was enabled during List Creation) on the ListInfo page.
 1. System subscribes the Person to the&nbsp;mailing list and sends an invitation message with all user account details.
 1. If the list is a Dlist then system also updates the database associated with the Dlist with new subscriber info.
 * ====== h6. ======<<Color2({{{
GetUnsubscribedFrm List
}}}
, col=#003366)>>
<<Color2(&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;, col=#000000)>><<Color2({{{
Actor
}}}
, col=#000000)>><<Color2(&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; :&nbsp;&nbsp;&nbsp; List User, col=#000000)>><<Color2(&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;, col=#000000)>><<Color2({{{
Goal
}}}
, col=#000000)>><<Color2(&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; :&nbsp;&nbsp;&nbsp; To unsubscribe from a list with Dlist feature enabled.&nbsp;, col=#000000)>><<Color2('''&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Basic course of events''', col=#000000)>><<Color2(: &nbsp; &nbsp;, col=#000000)>> 1. List user decides to unsubscribe from a List due to some reason.
 1. List User goes to the member Options page and selects the unsubscription option.
Line 69: Line 99:
 1. In both the cases If the list is a Dlist then the System automatically updates the database associated with the list.&nbsp;  1. If the list is a Dlist then the System automatically updates the database.&nbsp;
Line 129: Line 159:
 * h6. SendMailFrmAlias Email-id  * <<Color2({{{
HaveAliasToMail List
}}}
, col=#003366)>>
Line 135: Line 168:
 1. List User decides to send mail from another email-id(either to be able to send as anonymous or for any other reason)  1. List User decides to have another email-id(either to be able to send as anonymous or for any other reason) to be able to send mail from.
Line 137: Line 170:
 1. System updates the database for that Dlist with &nbsp;the List Users other incoming email-address.
 1. Later on if the List user tries to send a mail via the alias address then&nbsp; a check is performed to ensure that the sender exists in list of subscribers or their respective aliases,If yes then his mail is processed further and send to all list users otherwise he/she gets an automated reply and the mail is dropped or sent to the moderator(depending on the list settings).
 1. System updates the database for that Dlist with the List User's other incoming email-address
 * h6. SendMailFrmAlias Email-id
<<Color2('''&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Actor''', col=#000000)>><<Color2(&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; :&nbsp;&nbsp;&nbsp; List User, col=#000000)>><<Color2(&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;, col=#000000)>><<Color2({{{
Goal
}}}
, col=#000000)>><<Color2(&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; :&nbsp;&nbsp;&nbsp; To be able to send mail from an email-address other than the one from which the list user had subscribed to the Dlist., col=#000000)>><<Color2(&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;, col=#000000)>><<Color2(Basic course of events:*, col=#000000)>> 1. List User decides to send mail from Alias email-id.
 1. List user initiates a conversation or reply to one on the List from the alias address.
 1. System performs a check to ensure that the sender exists in list of subscribers or their respective aliases,If yes then his/her mail is processed further and send to all list users otherwise he/she gets an automated reply and the mail is dropped or send to the moderator(depending on the list settings).

'''ABOUT DYNAMIC SUBLISTS'''''':'''

Dynamic Sublists or dlists,is a feature added by Systers to the Mailman-2.1.10 version they use.This feature was implemented with the aim of providing flexibility to the list subscribers and has been in our production branch for more than 6 years now.In between Systers have carried out various discussions with Mailman team regarding Dlist.We aim to upstream/integrate this feature with the upcoming Mailman3 version so that the larger Open Source world can benefit from it.

__Flexibilty provided by Dynamic Sub-lists to Subscribers__:

  • h6. Subscribe/Unsubcribe from *new\ conversations:*

List subscribers can decide whether to be a part of new conversations or not.If the users decide to subscribe to new conversations,then they will recieve all the messages of a new conversation unless they explicitly unsubscribe from it.If they otherwise decide to unsubscribe from new conversations,then they will receive only the first message of every new conversation unless they explicitly subscribe to it. Advantages Served:

  1. List Users depending upon the conversation can anytime opt to be a part of conversation or not.
  2. It prevents the inbox to get unecessary filled up with conversations that are of no interest.
  3. It prevents List Users to either switch over to Digest or worst Unsubscribe from the entire list if many uninteresting conversations start hitting their mailbox at some point of time.   

  4. h6. Other incoming Email-Address/Alias

The list subscribers can like to be able to send messages to the list from 1 or more email addresses other than the one with which they subscribed. Advantage Served:

  1. One situation that I think this feature can be of great imporatance is the one where a list user wants to send a message to the list but also wants to hide his/her identity at the same time(This is achieved as he/she can send that message from an annonymous email-address entered as alias and not otherwise known to the list).

'''List Administrator and Dlists'''''':'''

  • h6. Create a list as DLIST or Non-Dlist:

While creating a list the List Administrator can choose to define a list as either a Dlist(Original Mailman list with Systers added features) or Non-Dlist(original Mailman list).

  • h6. Essay:

An essay is a set of questions that can be asked by the listadmin, which has to be answered by the subscriber in order to subscribe. The essay feature can be enabled by the list creator when creating the list, and at the same time the list creator can choose which questions to ask.The default when enabling this feature are the questions used for the Systers maillist at present(during integration this Default will be changed to NULL string) but by simply editing the field with the questions the list creator can choose to have other questions instead.The field takes markdown syntax and if only plain text is entered, it will appear as just such. If the essay feature is enabled the subscribers can't subscribe to the list without entering at least some text in the appropriate field. Should list creators not want to have an essay, they can simply mark this when creating the list and ignore the questions field.

'''USE CASES:+'''

  • h6. Create List

          Actor         :    List Owner           Goal          :    To create a list with Dynamic Sublist feature enabled.

          Basic course of events:   

  1. Use Case begins when Owner wants to create a new list.
  2. Owner goes to the list creation page(or can also use command line utility to create a list)
  3. He/She chooses the Dlist option as 'yes' and also whether to have the 'Essay' feature enabled or not during the list creation process.
  4. System creates the list with Dynamic Sublist feature enabled and also creates the database required for that list.
  5. h6. Delete List

          Actor         :    List Owner           Goal          :    To delete a list      

          Basic course of events:

  1. List Owner decides to delete one of the existing lists.
  2. He/She Executes the rmlist command on terminal and can also mention whether the List Archives are to be deleted or not. 

  3. System checks whether the list is a Dlist or not,if yes then it deletes all dynamic list related info including the database associated with it.If not then it deletes the Non-dlist.    

  4. h6. SubscribePeopleTo List

          Actor         :    Moderator           Goal          :    To subscribe People to list 

          Basic course of events:    

  1. Moderator decides to invite a person(or a group) to a list.
  2. Moderator selects whether he/she wants to send an invitation message or not and sends invites by entering the email id(or list of email ids) through the Mass Subscription page.
  3. System subscribes the Person(or group) to the mailing list.

  4. If the list is a Dlist then the system also updates the subscriber info in the database associated with the Dlist. 

  5. ====== h6. ======<<Color2(

    UnsubscribePeopleFrm List

, col=#003366)>> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

<<Color2(

Actor

, col=#000000)>>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : &nbsp; &nbsp;Moderator

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

<<Color2(

Goal

, col=#000000)>>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; :&nbsp;&nbsp;&nbsp; To unsubscribe a Person or Group &nbsp;from a list

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Basic course of events

:&nbsp;&nbsp; &nbsp;

1. Moderator decides to unsubscribe a spammer or a subscriber not abiding to the rules of the list or a subscriber for any specific reason.

  1. He unsubcribes the person or group by entering their email id on the mass removal page.
  2. System unsubscribes the Person(or group).
  3. If the list is a Dlist then systemSystem updates the database.
  4. ====== h6. ======<<Color2(

    GetSubscribedTo List

, col=#003366)>> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

<<Color2(

Actor

, col=#000000)>>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; :&nbsp;&nbsp;&nbsp; List User

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

<<Color2(

Goal

, col=#000000)>>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; :&nbsp;&nbsp;&nbsp; To subscribe to a list&nbsp;

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

<<Color2(

Basic course of events

, col=#000000)>>: &nbsp; &nbsp;

1. User decides to subscribe to a List.

  1. He/she fills all details including the 'ESSAY' portion(if the essay feature was enabled during List Creation) on the ListInfo page.

  2. System subscribes the Person to the mailing list and sends an invitation message with all user account details.

  3. If the list is a Dlist then system also updates the database associated with the Dlist with new subscriber info.
  4. ====== h6. ======<<Color2(

    GetUnsubscribedFrm List

, col=#003366)>> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

<<Color2(

Actor

, col=#000000)>>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; :&nbsp;&nbsp;&nbsp; List User

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

<<Color2(

Goal

, col=#000000)>>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; :&nbsp;&nbsp;&nbsp; To unsubscribe from a list with Dlist feature enabled.&nbsp;

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Basic course of events

: &nbsp; &nbsp;

1. List user decides to unsubscribe from a List due to some reason.

  1. List User goes to the member Options page and selects the unsubscription option.
  2. System unsubscribes the user from the List.
  3. If the list is a Dlist then the System automatically updates the database. 

  4. h6. GetAllConversationTrafficOf List

          Actor         :    List User           Goal          :    To subscribe to all new conversation always(unless user wants to explicitly unsubscribe from a particular conversation)

          Basic course of events:

  1. List User decides to hear all conversation mails(Mail of the person who initiated a conversation and all the corresponding replies to that conversation for all List Users)
  2. List user goes to the Options page.
  3. Sets the 'Subscribed to new conversations?' option to 'Yes'
  4. System updates the user request in the Database for Dlist.
  5. ====== h6. ======<<Color2(

    GetOnlyInitialCnvrstnMsgsOf List

, col=#003366)>> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

&nbsp; Actor

&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; :&nbsp;&nbsp;&nbsp; List User

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

<<Color2(

Goal

, col=#000000)>>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; :&nbsp;&nbsp;&nbsp; To unsubscribe from all new conversation always(unless user wants to explicitly subcribe to a particular conversation)

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

Basic course of events:*

1. List User decides to get rid off  all conversation traffic of a list hitting the inbox except the first mail(Mail of the person who initiated the conversation)

  1. List user goes to the Options page.
  2. Sets the 'Subscribed to new conversations?' option to 'No'
  3. System updates the user request in the Database for Dlist.
  4. h6. StartA Discussion*

          Actor         :    List User           Goal          :    To start a new conversation thread on Dlist

          Basic course of events:

  1. List User decides  to start a new discussion.

  2. He/She sends email to listname+new@domain or listname+new+name@domain where the name is the 'name you will like to give the conversation'.

  3. System sends the mail to all List Users and automatically updates the Dlist database with conversation thread details.  

  4. h6. ReplyToA Discussion

          Actor         :    List User           Goal          :    To reply to an ongoing discussion.

          Basic course of events:

  1. List User decides to reply to a discussion going on in the list.
  2. He/She Replies back to a conversation by using mailers Reply-all option or by simply replying to address listname+subject@domain if he/she wants his/her message to goto all List Users.If the List User wants to reply only to the sender of the mail then he/she simply uses the 'reply' option.
  3. The system checks whether the list is a Dlist or not,If not then it processes the reply and sends it to all List Users.Otherwise if its a Dlist then the system sends the mail only to those List users who have opted to receive all conversation traffic of the list.
  4. h6. GetNoFurtherMailOf  a Discussion

          Actor         :    List User           Goal          :    To unsubscribe from an ongoing Dlist conversation.           PreCondition:  List User has opted to receive all conversation traffic of the list.

          Basic course of events:

  1. User Finds a particular discussion not useful and decides not to make his/her inbox filled up with messages following that discussion.
  2. He/She sends email to listname+subject+unsubscribe@domain or goes to a link as mentioned in the footer of each conversation message to opt out from conversation.
  3. The system records the user request in the Dlist database.If later on any message is send to that discussion all List users will get that message except those who have decided to opt out from discussion.
  4. h6. GetAllMsgsOf a Discussion.

          Actor       :    List User           Goal        :    To subscribe to an ongoing Dlist conversation.           PreCondition:  List User has opted to receive only the first conversation message of every discussion of the list.

          Basic course of events:

  1. List User decides to get all the messages following a discussion started on the list.
  2. They send email to listname+subject+subscribe@domain or go to a link as mentioned in the footer of the first conversation message received. 

  3. The system records the user request in the Dlist database.If later on any message is send to that discussion the List user will get all following messages and replies.
  4. <<Color2(

    HaveAliasToMail List

, col=#003366)>>           Actor        :    List User           Goal         :    To be able to send mail from an email-address other than the one from which the list user had subscribed to the Dlist.

          Basic course of events:

  1. List User decides to have another email-id(either to be able to send as anonymous or for any other reason) to be able to send mail from.
  2. List user enters the email-id to 'Other incoming email addresses' option in Options page for members.
  3. System updates the database for that Dlist with the List User's other incoming email-address
  4. h6. SendMailFrmAlias Email-id

&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Actor

&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; :&nbsp;&nbsp;&nbsp; List User

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

<<Color2(

Goal

, col=#000000)>>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; :&nbsp;&nbsp;&nbsp; To be able to send mail from an email-address other than the one from which the list user had subscribed to the Dlist.

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

Basic course of events:*

1. List User decides to send mail from Alias email-id.

  1. List user initiates a conversation or reply to one on the List from the alias address.
  2. System performs a check to ensure that the sender exists in list of subscribers or their respective aliases,If yes then his/her mail is processed further and send to all list users otherwise he/she gets an automated reply and the mail is dropped or send to the moderator(depending on the list settings).
  3. h6. ChngOrRmv Alias:

          Actor       :    List User           Goal        :    To be able to change or Remove the Alias email address.

          Basic course of events:

  1. List User decides to change his/her Alias email-ids.
  2. List user can change the list of Aliases in 'Other incoming email addresses' option in Options page for members.He/She can set it to blank for removing all aliases.
  3. The System updates all the changes to Dlist database and allows the user to send mails from his/her Alias email-id thereafter. 

'''HOW DLIST WAS IMPLEMENTED IN MAILMAN (A brief insight into technical details):'''

http://wiki.list.org/display/DEV/Brief+Technical+Details


MailmanWiki: DEV/Dynamic Sublists (last edited 2015-03-04 05:01:18 by msapiro)