[Mailman-Users] Using cronjob to remove and add members to a mailing list

Mark Sapiro mark at msapiro.net
Sat Jun 6 18:20:18 CEST 2015


On 06/05/2015 09:04 AM, Jerry Barnabee wrote:
> I want to be able to run a cronjob on my server that uses a php script to add new users and/or remove users from a mailing list. Not having any luck finding any simple examples.  My thought is that the php script would get email addresses from a database (which I can do) and then feed them to a mailman command line to either add or remove a user. 


Mailman's sync_members command does exactly what you want. You would use
proc_open() in your php script to create pipes to and from the command,
then write the desired membership list one user per line in the form

"User's Name" <user at example.com>

to the command's input and read the output. The display name in the
above example is optional, but is used as the real_name attribute of a
user added by the command.


> The cronjob is entered via Cpanel.  Have several cronjobs that modify databases but have never tried something that would actually execute a unix command.


In cPanel, the command you want is
/usr/local/cpanel/3rdparty/mailman/bin/sync_members.

/usr/local/cpanel/3rdparty/mailman/bin/sync_members -h

will give usage info. The actual command you'd run with proc_open() is

/usr/local/cpanel/3rdparty/mailman/bin/sync_members -f - LISTNAME

where -f - says use stdin as the input and LISTNAME is the actual cPanel
list_domain list name. See the help for other options controlling
notices and whether or not to actually update the list or just report
(good for testing).

-- 
Mark Sapiro <mark at msapiro.net>        The highway is for gamblers,
San Francisco Bay Area, California    better use your sense - B. Dylan


More information about the Mailman-Users mailing list