[Mailman-Developers] GSOC Project Discussion

Barry Warsaw barry at list.org
Wed Jun 19 00:50:02 CEST 2013


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
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: not available
URL: <http://mail.python.org/pipermail/mailman-developers/attachments/20130618/e07da7a3/attachment.pgp>


More information about the Mailman-Developers mailing list