[Mailman-Developers] Users, Bounces, and Virtual Domains
(was (no subject))
Barry A. Warsaw
barry@digicool.com
Thu, 14 Dec 2000 19:59:41 -0500
CVR> So in the redesign I'm doing, I'm assigning a user_id to an
CVR> account, and it's unique to that account. you can then attach
CVR> an email address to the account, and not have to worry about
CVR> it wandering out into the rest of the database so it's easy
CVR> to update. (one of these minutes I'll finish the key parts of
CVR> the schema and post it). Assigning multiple addresses to an
CVR> account, and defining one as the "receiver" address and the
CVR> rest as poster addresses is a small enhancement from there.
Very cool.
CVR> It complicates bounce processing some, but a well-designed
CVR> search system onto the email address (more on that later, if
CVR> there's interest) gets around it. turns out you rarely have
CVR> to do brute force searches for an address if you put a little
CVR> thought into it.
Good.
CVR> true. in fact, I probably wouldn't advertise an account/login
CVR> name.
I agree.
CVR> Instead, I'd use a password and any defined email, perhaps
CVR> with a few carefully chosen heuristics to help find them if
CVR> they're confused (for instance, users use earthlink.com and
CVR> earthlink.net interchangeably).
Hadn't thought about that, and that is a good point.
CVR> You still have problems wehre companies re-arrange their
CVR> e-mail name space and don't tell the workers (and that
CVR> happens more often than you might think) but leave in aliases
CVR> for the old names, but you won't get 100%.
Right. I don't think 100% coverage is necessary. I really want to
handle the situations where someone knows his email is going to
change, or one where they purposely want different lists to deliver to
different addresses.
Here's another complication: are the delivery options set per-address
or per-list? Maybe I want all deliveries to "barry at wooz" to be
digests. Maybe I want lists A, B, and C to be regular deliveries.
CVR> To get into the account, you need one email address attached
CVR> to it, and the password. To get the passowrd, you need to
CVR> know any attached email address, and it's sent to that
CVR> address. That way, they don't need to remember anything, but
CVR> if they want to, they can.
Agreed.
CVR> And another option is "none" -- where Mailman is simply the
CVR> delivery agent for an address system controlled elsewhere and
CVR> whic users aren't allowed to update via Mailman. Once you
CVR> start going to external databases, either they're likely to
CVR> be holding stores for a standard mailman database, or they're
CVR> likely to be severely restricted access, or read-only from
CVR> the Mailman point of view.
Good point.
CVR> As a side note -- if we do this, we need to make sure we can
CVR> assign different addresses to different lists, all under the
CVR> same account.
Yup, absolutely, which is why I posed the config option question
above.
CVR> So if someone wants to put eachlist to a
CVR> different address, they can... that starts turning into an N
CVR> x N mapping, so it can get complex (and it implies that the
CVR> account has an account ID, whic points to 1 -> N email
CVR> addresses, which each have an email ID, whic is what's used
CVR> to do the actual subscription. So the schema starts getting
CVR> complex...)
I see a level of indirection coming to the rescue. MailingLists have
Rosters and Rosters have EmailAddresses which in turn link back to the
UserAccount. A MailingList might actually want to deliver to multiple
Rosters, which is where I think the umbrella list stuff could be
improved. I.e. you have a Roster for mailman-developers and a Roster
for mailman-users and mailman-announce contains a computed Roster
composed of those first two, along with it's own Roster. Now you send
a message out to mailman-announce and everybody gets it (although what
do you do about Subject: munging, footer addition List-* headers and
the like?). I also see creation of Rosters for list owners, site
administrators and so on, so you could do things like compute a Roster
for all-list-owners@mysite.com if you had urgent information for your
list admins.
CVR> After the first one, why? (note for future mumuring: leave an
CVR> interface for the ability to build different validation
CVR> setups, or allow them to validate via one of many. don't
CVR> hardware mailbacks as THE validation setup...)
Agreed (and I have some thoughts on the mailback thread which I'll try
to get to separately).
CVR> -- you have an
CVR> audit trail back to the person, so if they decide to try to
CVR> spam someone you know who they are, and who to shoot. As long
CVR> as you don't lose the authenticity trail, once is all you
CVR> need (that would, I think, require authenticating another
CVR> address before allowing deletion of the one that's
CVR> authenticated, and disabling any account when all of the
CVR> authenticated addresses are disabled by bounce processing...)
I'm concerned about the scenario where I subscribe to a list, then add
your address to my account, then disable my address because I'm "going
on vacatin". Now suddenly you're getting flooded with postings that
make no sense to you. You don't know anything about Mailman, so
you're not even sure where to start complaining. And it could get
very annoying very quickly. Sure, once the admins are aware of the
problem they can trace it back to me and I'll get slapped around, but
in the meantime you're really pissed off. Where if your address was
confirmed when I tried to add it, you might still be pretty confused,
but you shouldn't be annoyed. (Come to think of it, without
protections, this is a nice annoyance spam route or DoS).
>What I mean is, that I'm a member of 10 lists on python.org, 3 or 4 on
>zope.org, a dozen on SourceForge, and handfuls on other sites. We can
>excuse the non-Mailman sites their shortsightedness, but I would
>really love to be able to manage my subscriptions to all those lists
>in a seamless, transparent manner.
CVR> but -- maybe the sites don't want that done? For marketing
CVR> purposes, for identification purposes, for whatever purposes?
No doubt. It's what I as a user of Mailman want though. :)
CVR> I don't even WANT to start thinking about sharing user data
CVR> across physical machines. Virtual hosts are enough joy here.
No, no, no, neither do I. I was just musing. Not to be seriously
considered for 3.0 (if at all!).
CVR> So I guess I'm in the school, at least right now, of saying
CVR> "we have one mailman engine, N lists, M vhosts. And for every
CVR> vhost, there are a subset of those N lists published, but if
CVR> you access the admin page through that vhost, you get that
CVR> vhost's UI -- but it's a portal into the global mailman data
CVR> setup. If they have to be kept separate, run multiple
CVR> instances of mailman with separate data stores.
I'm firmly in agreement.
CVR> Either that, or (I'd probably prefer it this way) you can't
CVR> get info on subscribing to a list from other than a vhost
CVR> it's advertised on, but anythign you're already subscribed
CVR> to, you can manage. Basically, i guess, I'm treating public
CVR> lists on other vhosts as private lists on this vhost... (I
CVR> think that works. yet?))
Yes, that's what I've been thinking too.
-Barry