Mailing lists are handled through ezmlm. They are a bit of a mess. Reading this will hopefully allow you to not add to this mess.

Lists

Administration

See Services/Club Mail for general information, or below for very specific instructions for administering an announce*** list. (they are probably useful for other lists as well if you do a bit of man page reading or w/e)

Announce Lists

It is Club tradition to make a list with a name of the format announces15 after an activities fair (where 's15' means 'spring 2015). We typically send half a dozen or so emails to this list followed by an email telling them to subscribe to other lists to continue receiving info.

All of the commands in this section require a Kerberos admin token (we could change the permissions on the directories to change this....). So, to get started, acquire that.

kinit USERNAME/admin 

You will need to run them from a mailserver. So do:

ssh mx1.club.cc.cmu.edu 

Ezmlm stores mailing lists as directories in ~ezmlm/Maildir/LIST_NAME with a bunch of crap in it. Do not be tempted to edit this crap by hand; it may look human-editable, but it is not. Instead, use the following ezmlm commands. Note that you need to provide absolute paths to the mailing list directory.

Initialize the list

I am using announces15 as an example, but be sure to replace it the the appropriate list name.

Create the list (note - this is ONE LINE):

ezmlm-make -5 social@club.cc.cmu.edu -m /afs/club.cc.cmu.edu/usr/ezmlm/Maildir/announces15 /afs/club.cc.cmu.edu/usr/ezmlm/.qmail-announces15 announces15 club.cc.cmu.edu 

The -5 option containing, e.g., social@club.cc.cmu.edu, is the address to which mail directed to the list owner will be delivered. In this case, that is also a mailing list, so you should probably be subscribed to it if you are doing this (so subscribe yourself now).

-m is a flag that indicates the list shall be moderated. That's a good idea for an announcement list.

If you need to modify any of this configuration at a later time, you'll need to run ezmlm-make with the -e flag; see man ezmlm-make.

Message trailer

You probably want to set up a message trailer, explaining to users how they can unsubscribe from the mailing list. We've already got a generic trailer set up for some of our existing lists, so you can simply copy it to the new list, then touch a special file to enable the trailer. E.g.,

cp ~ezmlm/Maildir/members/text/trailer ~ezmlm/Maildir/announces15/text/trailer
touch ~ezmlm/Maildir/announces15/addtrailer

Unfortunately, this trailer only seems to be appended to emails when their content type is plaintext. That doesn't really happen these days. :/

Allowing destination aliases

For certain lists (not typically the announce ones, but rather e.g., demosplash-volunteers@club.cc.cmu.edu), it may make sense to allow posts which do not include the underlying list address in the To: or Cc: fields. This has the effect of allowing the use of a "vanity" alias for the list, e.g., volunteers@demosplash.org.

To accomplish this, open the file ~ezmlm/Maildir/<listname>/editor, find the text then /usr/bin/ezmlm-reject, and add -T (e.g., then /usr/bin/ezmlm-reject -T). See man ezmlm-reject for details on this flag.

Add to subusers

IMPORTANT STEP: You will then need to add the list to /afs/club/service/mail/subusers. Do not forget this step, or mail will not send. This will be used by an hourly cronjob to actually create the necessary configs, so you'll have to wait a while. If you're impatient, ssh into each mailserver, become root with ksu -l, and run:

/afs/club.cc.cmu.edu/system/scripts/perl/mailassign.pl /afs/club/user > /var/qmail/users/assign && /usr/sbin/qmail-newu

or whatever new and equivalent incantation is listed in root's crontab -l.

If list is at a virtualdomain

For things like foo@demosplash.org for instance, an additional step is required to plumb this to the right place in ~ezmlm.

Look at /var/qmail/virtualdomains on all MXes (just one entry required per domain, not per address), as well as ~fwdmail/, where we typically put the .qmail-* files for each domain run by cclub as an org. Virtual domains for users might instead point to their own home directory.

Basic list management

You will also want to subscribe yourself to the moderation list, or it will be impossible to post:

ezmlm-sub ~ezmlm/Maildir/announces15 mod [your email] 

To subscribe someone to the list, do:

ezmlm-sub ~ezmlm/Maildir/announces15 [email address] 

If you omit the email address, it will read from stdin, allowing niceness like:

cat signup_list | ezmlm-sub ~ezmlm/Maildir/announces15 

To list the membership of a list, do:

ezmlm-list ~ezmlm/Maildir/announces15 

Just before the mailing list is retired (ie. when you send the email telling people to subscribe to other lists), you should subscribe everyone on the announce list to event-announce. Do this efficiently like so:

ezmlm-list ~ezmlm/Maildir/announces15 | ezmlm-sub ~ezmlm/Maildir/event-announce 

Computer Club Administrative Stuff/Mailing Lists (last edited 2021-11-09 08:58:58 by mdille3@CLUB.CC.CMU.EDU)