# Manage subscribable mailing list [TOC] ## Summary iRedMail-0.9.8 integrates [mlmmj](http://mlmmj.org) as mailing list manager. "Although it doesn't aim to include every feature possible, but focuses on staying mean and lean, and doing what it does do well, it does have a great set of features, including:" * Archive * Custom headers / footer * Fully automated bounce handling (similar to ezmlm) * Complete requeueing functionality * Moderation functionality * Subject prefix * Subscribers only posting * Regular expression access control * Functionality to retrieve old posts * Digests * No-mail subscription * VERP support * Delivery Status Notification (RFC1891) support * Rich, customisable texts for automated operations For more details about mlmmj, please visit [mlmmj website](http://mlmmj.org). ## Default settings on iRedMail server * mlmmj doesn't have a global config file. * Data (archive, configurations, etc) of mailing lists are stored under `/var/vmail/mlmmj` by default. For example: mailing list `newsletter@mydomain.com`: * Archived messages are stored under `/var/vmail/mlmmj/mydomain.com/newsletter/archive/`. * Normal subscribers are stored under `/var/vmail/mlmmj/mydomain.com/newsletter/subscribers.d/`, file `a` under this directory contains all subscribers whose email addresses start with letter `a`. ## Manage mailing lists with command line tools iRedMail team develops a HTTP RESTful API server called `mlmmjadmin` to help manage mlmmj mailing lists: * It's installed under `/opt/mlmmjadmin`, which is a symbol link to `/opt/mlmmjadmin-`. * It listens on address `127.0.0.1`, port `7779` by default. * It's written in Python programming language, full source code is hosted on github: . Feel free to fork it and send us pull requests to improve it. ### Create a mailing list Let's say you have mail domain `mydomain.com` hosted on iRedMail server, now let's create mailing list `newsletter@mydomain.com` from command line: ``` cd /opt/mlmmjadmin/tools/ python maillist_admin.py create newsletter@mydomain.com ``` You can create mailing list with extra options, for example: ``` python maillist_admin.py create newsletter@mydomain.com name='Support Team' disable_archive=no ``` * All options are listed in file `/opt/mlmmjadmin/docs/API.md` on your server. * You can specify as many (different) options as you want. ### View mailing list settings To view mailing list settings, use the `info` argument like below: ``` python maillist_admin.py info newsletter@mydomain.com ``` ### Update an existing mailing list To update existing mailing list, use the `update` argument like below: ``` python maillist_admin.py update newsletter@mydomain.com name='Updated name' disable_archive=yes ``` All options are listed in file `/opt/mlmmjadmin/docs/API.md` on your server. ### Delete an existing mailing list To delete an existing mailing list, use the `delete` argument like below: ``` python maillist_admin.py delete newsletter@mydomain.com ``` ### List all members/subscribers To delete an existing mailing list, use the `subscribers` argument like below: ``` python maillist_admin.py subscribers newsletter@mydomain.com ``` ### Check whether mailing list has given member/subscriber To check whether mailing list has given member/subscriber, use the `has_subscriber` argument like below: ``` python maillist_admin.py has_subscriber newsletter@mydomain.com subscriber@gmail.com ``` ### Check all subscribed mailing lists of a given member/subscriber To check all subscribed mailing lists of a given member/subscriber, use the `subscribed` argument like below: ``` python maillist_admin.py subscribed subscriber@gmail.com ``` ## How to subscribe to or unsubscribe from a mailing list * To subscribe to mailing list `newsletter@mydomain.com`, simply send an email to address `newsletter+subscribe@mydomain.com` (content of mail subject and body don't matter at all), you will receive an email for subscription confirmation. Simply reply the confirm email with any subject/body will confirm your subscription. * To unsubscribe from mailing list `newsletter@mydomain.com`, simply send an email to address `newsletter+unsubscribe@mydomain.com` (content of mail subject and body don't matter at all), you will receive an email for unsubscription confirm, simply reply the confirm email with any subject/body will confirm your unsubscription.