On May 30, 2013, at 06:37 PM, Richard Wackerbarth wrote:
OK. Then a "roster" represents the distribution list for a "feed" of outgoing messages. The "mailinglist" represents the reception point(s) for the incoming messages and the directives for handling the processing of those messages.
The thing that hasn't been addressed is how an individual recipient can affect the processing of messages that are processed while he is a member of a roster.
In particular, how do the "user settings" come into play? Presumedly, a user can have different settings for each list to which he is subscribed.
Yes. Keep in mind though that we have three data types that are associated with a "user" (each of these are described by interfaces in the mailman/interfaces directory). Each email address the system knows about is represented by an IAddress record. An IUser record doesn't have much more than a created_on date, a user_id, a display name, and a password, but it has a number of abstract methods and attributes for convenience.
Addresses are usually, but not necessarily, linked to users in a many-to-one relationship. An address can have at most one user, but a user can have many addresses. A user can also have a preferred address.
IMember records represent subscriptions, and (loosely) tie a mailing list to either an IAddress or an IUser. For the latter, the user must have a preferred address.
Each of these three data types can be associated with a preferences record, and there is a defined order of lookup for any particular preference. From most highest priority to lowest it goes: member, address, user, system default.
So how can a user have different settings for each subscribed list, even if they are subscribed to all of them using their preferred address (i.e. through the IUser record)? Each subscription is represented by a unique IMember record, and each one of those can have their own preferences.
User settings come into play in a number of situations. For example, in the "member-recipients' handler, where we calculate who is going to receive a mailing list message, we'll look at their setting for 'receive_own_postings'. If that's false, we won't add that user to the list of recipients. Similarly, this handler will look at whether their delivery status is enabled and whether they are receiving "regular" (i.e. not digest) deliveries.
User settings may also come into play in the final delivery stage. If the mailing list is set up to do personalization (and/or VERP), then when we're sending the personalized copy, we can pull information out of the user or member record, such as their name and address for full personalization, or other information for custom footers.
What, if any, individual settings apply to moderator feeds? Are these different from those which apply to the feed that the individual receives as a member of the list?
Yes, because the other thing that an IMember associates with the subscription is the role of the subscription. So if you are both a member of the mailing list (you get list postings) and a moderator, then there are two IMember records linking your address/user to the mailing list, but they would have different roles, and each IMember could have different preferences. Moderator/owner delivery doesn't go through the same set of handlers as regular delivery so not everything would honor different preferences. For example, you can't get digest delivery of owner messages.
-Barry