Need to figure out how best to switch over from an old GNU Mailman system to phpList for a couple things

We currently have a GNU Mailman-based system that is used to send campus-wide email messages and are starting to investigate switching some of that over to using phpList.

We’ve narrowed our needs down to two main tasks at the moment:

  1. Get the email address lists from the GNU Mailman system into phpList.
  2. Send the messages we need without dealing with the phpList back-end.

For #1, I did some searching and found this:

Our IS guy builds the lists (of our students, our employees, etc.) outside of GNU Mailman and then programmatically imports them in to GNU Mailman. Theoretically, he could use the info at the above URL to do the same sort of thing (ish) with phpList.

But, there’s a wrinkle…I know from having had to deal with it that, once defined, a list in phpList has to be “pruned” (I usually do it “cold turkey” and just flat-out delete the list and import one in anew manually) or else it could contain email addresses that are, for various reasons, no longer needed in the list.

So my question for #1 is two-fold…are we heading down the right track with that URL I found, and is there a way to “prune” phpList lists without having to go into the GUI?

For #2, I’m pretty sure that the solution will involve our IS guy setting up CRON properly on our phpList server and then using something from this:

Again, though, I want to be sure we’re heading down the correct path before we spin our wheels on this.

So I guess all that I need at this point is verification that the above is indeed the way to do what we’re wanting to do (and if I didn’t explain it well enough, to ask me the questions that are needed to figure out whether this is the way to do it)

Doug Thompson
Manager of Web and Electronic Communications
Ohio Wesleyan University

@dethompsOWU It sounds like you are already using phplist but it is probably worth clarifying that it is “one to many”, you cannot have “conversations” like mailman.

The Subscribers plugin provides one way to import a file of subscribers, which can be run by a cron job to “automate” the import, but it is not clear what you mean by “prune”. If you want to selectively remove email addresses then that is best done through the admin interface, there isn’t a phplist page that can be run from the command line to do that.

The “Suppression list” page in the admin interface lets you copy/paste a list of email addresses each of which will be marked as unconfirmed or blackisted. So if you have a set of email addresses that you want to remove then that page is one way to achieve that.

If this is not sufficient then the way that phplist supports automation is through an API, so you would need to write php code to do exactly what you need. There are two APIs, the most functional is the REST API plugin see plugin:restapi [phpList Resources]

Okay…sounds like some clarification is needed:

Yes, we’re already using phpList for something and yes, we realize phpList is “one-to-many” vs. “many-to-many”. That’s okay, because the email campaign that weren’t wanting to move is sent out by one entity (us) to many people (university students and employees). So, no worries there.

What I meant by “prune” is so much less elegant than selectively removing email addresses…basically, every few days the various systems that are used to build the GNU Mailman lists for employees, students, etc. are updated and those GNU Mailman lists are rebuilt nightly. But the quantity of email addresses affected changes. It’s very rare that we’d have ready access to just the email addresses that were removed, so far easier/faster (I’d think) would be to basically delete a list and build it anew.

The “Suppression List” thing you mention is intriguing, but without ready access to the specific email addresses that are affected when the list updates, I don’t know that it would be all that useful in our case…

I think the REST API part of things is overkill for what we want to attempt to do at this point, but I’ll definitely mention it to our IS guy since these “nitty gritty details” are largely “Greek to me”-type things.


@dethompsOWU It sounds like you want to replace all the subscribers of a list with a new set of subscribers. The approach of deleting the list and creating a new one seems to make the automated import more difficult because the list id is going to change each time.

Either way it is a manual task to delete a list/create a new list or to remove all subscribers from a list (that can be done as one action when viewing the list’s subscribers). Then the import of the new set of subscribers can be done in an automated way using the Subscribers plugin page.

I’m thinking maybe what we’ll do instead of going down this “automate as much as possible” path with this is that I’ll manually do the “delete old list and import a new one” periodically. It’s just a matter of us figuring out what “periodically” should be (the lists aren’t actually updated daily in our GNU Mailman-based system…I’m just not privy to how frequently exactly that those updates happen.

Thanks for all your help!