2018-02-05 21:53:46 -06:00
<!DOCTYPE html>
< html >
< head >
< meta http-equiv = "Content-Type" content = "text/html; charset=utf-8" / >
< title > Integrate mlmmj mailing list manager in iRedMail (PostgreSQL backend)< / title >
< link rel = "stylesheet" type = "text/css" href = "./css/markdown.css" / >
< / head >
< body >
2019-07-13 06:21:55 -05:00
2018-02-05 21:53:46 -06:00
< div id = "navigation" >
< a href = "https://www.iredmail.org" target = "_blank" >
< img alt = "iRedMail web site"
src="./images/logo-iredmail.png"
style="vertical-align: middle; height: 30px;"
/>
< span > iRedMail< / span >
< / a >
// < a href = "./index.html" > Document Index< / a > < / div > < h1 id = "integrate-mlmmj-mailing-list-manager-in-iredmail-postgresql-backend" > Integrate mlmmj mailing list manager in iRedMail (PostgreSQL backend)< / h1 >
< div class = "toc" >
< ul >
< li > < a href = "#integrate-mlmmj-mailing-list-manager-in-iredmail-postgresql-backend" > Integrate mlmmj mailing list manager in iRedMail (PostgreSQL backend)< / a > < ul >
< li > < a href = "#summary" > Summary< / a > < / li >
< li > < a href = "#backup-sql-database-first" > Backup SQL database first< / a > < / li >
2018-02-06 01:14:34 -06:00
< li > < a href = "#install-mlmmj-package" > Install mlmmj package< / a > < / li >
2018-02-05 21:53:46 -06:00
< li > < a href = "#create-required-system-account" > Create required system account< / a > < / li >
< li > < a href = "#update-sql-tables-in-vmail-database" > Update SQL tables in vmail database< / a > < / li >
< li > < a href = "#postfix-integration" > Postfix integration< / a > < / li >
< li > < a href = "#amavisd-integration" > Amavisd Integration< / a > < / li >
< li > < a href = "#setup-mlmmjadmin-restful-api-server-used-to-manage-mlmmj-mailing-lists" > Setup mlmmjadmin: RESTful API server used to manage mlmmj mailing lists< / a > < / li >
2019-01-09 20:47:00 -06:00
< li > < a href = "#manage-subscribeable-mailing-lists" > Manage subscribeable mailing lists< / a > < / li >
2018-02-05 21:53:46 -06:00
< li > < a href = "#references" > References< / a > < / li >
2018-11-13 19:21:36 -06:00
< li > < a href = "#see-also" > See Also< / a > < / li >
2018-02-05 21:53:46 -06:00
< / ul >
< / li >
< / ul >
< / div >
< h2 id = "summary" > Summary< / h2 >
2018-02-05 23:27:49 -06:00
< p > In iRedMail-0.9.8, we integrate mlmmj (< a href = "http://mlmmj.org" > http://mlmmj.org< / a > ) - a simple and slim
2018-02-05 21:53:46 -06:00
mailing list manager. It uses very few resources, and requires no daemons, easy
to install, configure and manage. if offers a great set of features, including:< / p >
< ul >
< li > Archive< / li >
< li > Subject prefix< / li >
< li > Subscribers only posting< / li >
< li > Moderators only posting< / li >
< li > Moderation functionality< / li >
< li > Custom headers / footer< / li >
< li > Fully automated bounce handling< / li >
< li > Complete requeueing functionality< / li >
< li > Regular expression access control< / li >
< li > Delivery Status Notification (RFC1891) support< / li >
< li > Rich, customisable texts for automated operations< / li >
< li > and more< / li >
< / ul >
2018-02-05 23:27:49 -06:00
< p > With mlmmj integration, you can create as many mailing lists as you want. End
user can subscribe to mailing list < code > listname@domain.dom< / code > by sending email to
< code > listname+subscribe@domain.com< / code > , unsubscribe from the list by sending email to
< code > listname+unsubscribe@domain.com< / code > . Of course you can disable the subscription
and unsubscription with a setting.< / p >
2018-02-05 21:53:46 -06:00
< p > iRedMail team also developes a simple RESTful API server called < code > mlmmjadmin< / code >
to help manage mailing lists, it also offers script tool to manage mailing
lists from command line.< / p >
< p > We will show you how to integrate both mlmmj and mlmmjadmin in this tutorial.< / p >
< h2 id = "backup-sql-database-first" > Backup SQL database first< / h2 >
< p > Although we don't modify any existing SQL data in this tutorial, but it's
a good idea to backup it now before you adding any new mailing lists.< / p >
< p > Please run command < code > bash /var/vmail/backup/backup_pgsql.sh< / code > to backup SQL
databases.< / p >
2018-02-06 01:14:34 -06:00
< h2 id = "install-mlmmj-package" > Install mlmmj package< / h2 >
2018-02-28 22:28:16 -06:00
< div class = "admonition attention" >
< p class = "admonition-title" > Attention< / p >
< p > Package < code > uwsgi< / code > is required by the RESTful API server < code > mlmmjadmin< / code > .< / p >
< / div >
2018-02-06 01:14:34 -06:00
< ul >
< li > On RHEL/CentOS, < code > mlmmj< / code > is available in < code > EPEL< / code > repo, and it's enabled in
iRedMail by default. So we can install it directly:< / li >
< / ul >
2018-10-03 04:26:48 -05:00
< pre > < code > yum install mlmmj uwsgi uwsgi-plugin-python2 uwsgi-logger-syslog python-requests
2018-02-06 01:14:34 -06:00
< / code > < / pre >
< ul >
< li > On Debian/Ubuntu:< / li >
< / ul >
2018-05-01 03:49:31 -05:00
< pre > < code > apt-get install mlmmj uwsgi uwsgi-plugin-python python-requests
2018-02-06 01:14:34 -06:00
< / code > < / pre >
< ul >
< li > On FreeBSD:< / li >
< / ul >
< pre > < code > cd /usr/ports/mail/mlmmj
make install clean
2018-02-28 22:28:16 -06:00
cd /usr/ports/www/uwsgi
make install clean
2018-04-11 04:35:47 -05:00
cd /usr/ports/www/py-requests
make install clean
2018-02-06 01:14:34 -06:00
< / code > < / pre >
< ul >
2018-02-28 22:28:16 -06:00
< li > On OpenBSD (iRedMail always installs < code > uwsgi< / code > during installation, so no need
to install it here):< / li >
2018-02-06 01:14:34 -06:00
< / ul >
2018-07-24 07:42:46 -05:00
< pre > < code > pkg_add mlmmj altermime
2018-02-06 01:14:34 -06:00
< / code > < / pre >
2018-02-05 21:53:46 -06:00
< h2 id = "create-required-system-account" > Create required system account< / h2 >
< p > mlmmj will be ran as user < code > mlmmj< / code > and group < code > mlmmj< / code > , all mailing list data will
be stored under its home directory < code > /var/vmail/mlmmj< / code > :< / p >
< p > On Linux or OpenBSD:< / p >
< pre > < code > groupadd mlmmj
2018-02-28 22:28:16 -06:00
useradd -m -g mlmmj -d /var/vmail/mlmmj -s /sbin/nologin mlmmj
2018-04-04 00:47:18 -05:00
mkdir /var/vmail/mlmmj-archive
chown -R mlmmj:mlmmj /var/vmail/mlmmj /var/vmail/mlmmj-archive
chmod -R 0700 /var/vmail/mlmmj /var/vmail/mlmmj-archive
2018-03-08 08:43:14 -06:00
chmod 0755 /var/vmail # Make sure this directory is accessible by other users
2018-02-05 21:53:46 -06:00
< / code > < / pre >
< p > On FreeBSD:< / p >
< pre > < code > pw groupadd mlmmj
2018-05-01 04:03:55 -05:00
pw useradd mlmmj -m -g mlmmj -s /sbin/nologin -d /var/vmail/mlmmj
2018-04-04 00:47:18 -05:00
mkdir /var/vmail/mlmmj-archive
chown -R mlmmj:mlmmj /var/vmail/mlmmj /var/vmail/mlmmj-archive
chmod -R 0700 /var/vmail/mlmmj /var/vmail/mlmmj-archive
2018-03-08 08:43:14 -06:00
chmod 0755 /var/vmail # Make sure this directory is accessible by other users
2018-02-05 21:53:46 -06:00
< / code > < / pre >
< h2 id = "update-sql-tables-in-vmail-database" > Update SQL tables in < code > vmail< / code > database< / h2 >
< p > We need some updates in < code > vmail< / code > SQL database:< / p >
< ul >
< li > new SQL table < code > maillists< / code > : used to store profile of mailing list.< / li >
< li > new SQL column < code > forwardings.is_maillist< / code > < / li >
< li > new SQL column < code > domain.maillists< / code > : used to set per-domain limit of mailing
list accounts. This column is mostly used by iRedAdmin-Pro.< / li >
< / ul >
2018-04-06 12:58:04 -05:00
< p > This SQL structure was introduced in iRedMail-0.9.8, if you're running
an old iRedMail release, please upgrade iRedMail to the latest stable release
by following our tutorials first:< / p >
< ul >
< li > < a href = "./iredmail.releases.html" > iRedMail Upgrade Tutorials< / a > < / li >
< / ul >
2018-02-05 21:53:46 -06:00
< h2 id = "postfix-integration" > Postfix integration< / h2 >
< ul >
< li >
< p > Please add lines below in Postfix config file < code > /etc/postfix/master.cf< / code > :< / p >
< div class = "admonition attention" >
< p class = "admonition-title" > Attention< / p >
< ul >
< li > Command < code > /usr/bin/mlmmj-amime-receive< / code > doesn't exist yet, we will
create it later.< / li >
< li > On FreeBSD and OpenBSD, it should be
< code > /usr/local/usr/bin/mlmmj-amime-receive< / code > instead.< / li >
< / ul >
< / div >
< / li >
< / ul >
< pre > < code > # ${nexthop} is '%d/%u' in transport ('mlmmj:%d/%u')
mlmmj unix - n n - - pipe
flags=ORhu user=mlmmj argv=/usr/bin/mlmmj-amime-receive -L /var/vmail/mlmmj/${nexthop}
< / code > < / pre >
< ul >
< li > Add line below in Postfix config file < code > /etc/postfix/main.cf< / code > :< / li >
< / ul >
< pre > < code > mlmmj_destination_recipient_limit = 1
< / code > < / pre >
< ul >
< li > Open Postfix config file < code > /etc/postfix/main.cf< / code > , update existing parameter
< code > transport_maps< / code > , add new sql lookup like below. We will create required sql
lookup file later.< / li >
< / ul >
< pre > < code > transport_maps =
proxy:pgsql:/etc/postfix/pgsql/transport_maps_user.cf
proxy:pgsql:/etc/postfix/pgsql/transport_maps_maillist.cf # < - Add this line
...
< / code > < / pre >
< ul >
2018-02-06 00:06:25 -06:00
< li > Now create file < code > /etc/postfix/pgsql/transport_maps_maillist.cf< / code > :< / li >
2018-02-05 21:53:46 -06:00
< / ul >
< div class = "admonition warning" >
< p class = "admonition-title" > Warning< / p >
< p > Please update the < code > password =< / code > line with the real password of SQL user
< code > vmail< / code > , you can find it in files under < code > /etc/postfix/pgsql/< / code > .< / p >
< / div >
2018-09-12 04:54:03 -05:00
< pre > < code > hosts = 127.0.0.1
2018-04-18 04:50:33 -05:00
port = 5432
2018-09-12 04:54:03 -05:00
user = vmail
password = qsescZvV03f6YUtTMN2bQTejmjatzz
2018-02-05 21:53:46 -06:00
dbname = vmail
query = SELECT maillists.transport FROM maillists,domain WHERE maillists.address='%s' AND maillists.active=1 AND maillists.domain = domain.domain AND domain.active=1
< / code > < / pre >
< ul >
< li > Run commands below to create file < code > /usr/bin/mlmmj-amime-receive< / code > (Linux) or
2018-11-01 13:42:19 -06:00
< code > /usr/local/bin/mlmmj-amime-receive< / code > (FreeBSD/OpenBSD):< / li >
2018-02-05 21:53:46 -06:00
< / ul >
< div class = "admonition attention" >
< p class = "admonition-title" > Attention< / p >
< p > mlmmj doesn't support signature signing very well, so we follow mlmmj
official document and create this script to sign signature properly with
command < code > altermime< / code > . All iRedMail installation should have command
< code > altermime< / code > (package < code > AlterMIME< / code > ) available, so you don't need to install
it manually< / p >
< / div >
< p > On Linux:< / p >
< pre > < code > cd /usr/bin/
wget https://bitbucket.org/zhb/iredmail/raw/default/iRedMail/samples/mlmmj/mlmmj-amime-receive
2018-02-28 22:28:16 -06:00
chown mlmmj:mlmmj mlmmj-amime-receive
2018-02-05 21:53:46 -06:00
chmod 0550 mlmmj-amime-receive
< / code > < / pre >
< p > On FreeBSD or OpenBSD:< / p >
< pre > < code > cd /usr/local/bin/
wget https://bitbucket.org/zhb/iredmail/raw/default/iRedMail/samples/mlmmj/mlmmj-amime-receive
2018-02-28 22:28:16 -06:00
chown mlmmj:mlmmj mlmmj-amime-receive
2018-02-05 21:53:46 -06:00
chmod 0550 mlmmj-amime-receive
< / code > < / pre >
< h2 id = "amavisd-integration" > Amavisd Integration< / h2 >
< p > We need Amavisd to listen on one more port < code > 10027< / code > , it will be used to scan
spam/virus for emails posted to mailing list.< / p >
< ul >
< li > Please open Amavisd config file, find parameter < code > $inet_socket_port< / code > , add new
port number < code > 10027< / code > in the list, like below:< ul >
< li > On RHEL/CentOS, it's < code > /etc/amavisd/amavisd.conf< / code > .< / li >
< li > On Debian/Ubuntu, it's < code > /etc/amavis/conf.d/50-user< / code > .< / li >
< li > On OpenBSD, it's < code > /etc/amavisd.conf< / code > .< / li >
< li > On FreeBSD, it's < code > /usr/local/etc/amavisd.conf< / code > .< / li >
< / ul >
< / li >
< / ul >
< pre > < code > $inet_socket_port = [10024, 10026, 10027, 9998];
< / code > < / pre >
< ul >
< li > Add lines below in Amavisd config file. It creates a new policy bank called
< code > MLMMJ< / code > for emails submitted by mlmmj from port 10027. The purpose is signing
DKIM key on outgoing emails sent by mailing list, but disable
spam/virus/banned/bad-header checks, because emails sent to mailing list will
be scanned either on port 10024 (incoming email from external senders) or
10026 (outgoing email sent by smtp authenticated users).< / li >
< / ul >
< pre > < code > $interface_policy{'10027'} = 'MLMMJ';
$policy_bank{'MLMMJ'} = {
originating => 1, # declare that mail was submitted by our smtp client
allow_disclaimers => 0, # mailing list should use footer text instead.
enable_dkim_signing => 1, # sign DKIm signature
smtpd_discard_ehlo_keywords => ['8BITMIME'],
terminate_dsn_on_notify_success => 0, # don't remove NOTIFY=SUCCESS option
bypass_spam_checks_maps => [1], # don't check spam
bypass_virus_checks_maps => [1], # don't check virus
bypass_banned_checks_maps => [1], # don't check banned file names and types
bypass_header_checks_maps => [1], # don't check bad header
};
< / code > < / pre >
2018-02-28 22:28:16 -06:00
< p > Now restart Amavisd and Postfix service, mlmmj mailing list manager is now
2018-02-05 21:53:46 -06:00
fully integrated.< / p >
< p > We will setup < code > mlmmjadmin< / code > program to make managing mailing lists easier.< / p >
< h2 id = "setup-mlmmjadmin-restful-api-server-used-to-manage-mlmmj-mailing-lists" > Setup mlmmjadmin: RESTful API server used to manage mlmmj mailing lists< / h2 >
< ul >
< li >
< p > Download the latest mlmmjadmin release: < a href = "https://github.com/iredmail/mlmmjadmin/releases" > https://github.com/iredmail/mlmmjadmin/releases< / a > ,
2018-04-11 02:53:20 -05:00
extract downloaded package to < code > /opt/< / code > directory, and create a symbol link:< / p >
2018-02-05 21:53:46 -06:00
< div class = "admonition attention" >
< p class = "admonition-title" > Attention< / p >
2019-02-10 23:33:01 -06:00
< p > We use version < code > 2.1< / code > for example below.< / p >
2018-02-05 21:53:46 -06:00
< / div >
< / li >
< / ul >
2018-04-11 02:53:20 -05:00
< pre > < code > cd /root/
2019-02-10 23:33:01 -06:00
wget https://github.com/iredmail/mlmmjadmin/archive/2.1.tar.gz
tar zxf 2.1.tar.gz -C /opt
rm -f 2.1.tar.gz
ln -s /opt/mlmmjadmin-2.1 /opt/mlmmjadmin
2018-02-05 21:53:46 -06:00
< / code > < / pre >
< ul >
< li > Generate config file by copying sample file, < code > settings.py.sample< / code > :< / li >
< / ul >
< pre > < code > cd /opt/mlmmjadmin
cp settings.py.sample settings.py
chown mlmmj:mlmmj settings.py
chmod 0400 settings.py
< / code > < / pre >
< ul >
< li > Generate a random, long string as API auth token, it will be used by your
API client. For example:< / li >
< / ul >
< pre > < code > $ echo $RANDOM | md5sum
43a89b7aa34354089e629ed9f9be0b3b
< / code > < / pre >
< ul >
< li > Add this string in < code > /opt/mlmmjadmin/settings.py< / code > , parameter < code > api_auth_tokens< / code >
like below:< / li >
< / ul >
< pre > < code > api_auth_tokens = ['43a89b7aa34354089e629ed9f9be0b3b']
< / code > < / pre >
< p > You can add as many token as you want for different API clients. For example:< / p >
< pre > < code > api_auth_tokens = ['43a89b7aa34354089e629ed9f9be0b3b', '703ed37b20243d7c51c56ce6cd90e94c']
< / code > < / pre >
< ul >
< li > if you manage mail accounts < strong > WITH< / strong > iRedAdmin-Pro, please set values of
parameters < code > backend_api< / code > and < code > backend_cli< / code > in < code > /opt/mlmmjadmin/settings.py< / code >
like below:< / li >
< / ul >
< pre > < code > backend_api = 'bk_none'
backend_cli = 'bk_iredmail_sql'
< / code > < / pre >
< ul >
< li > if you do < strong > NOT< / strong > manage mail accounts with iRedAdmin-Pro, please set values
of parameters < code > backend_api< / code > and < code > backend_cli< / code > in < code > /opt/mlmmjadmin/settings.py< / code >
like below:< / li >
< / ul >
< pre > < code > backend_api = 'bk_iredmail_sql'
backend_cli = 'bk_iredmail_sql'
< / code > < / pre >
< ul >
< li >
< p > Add extra required parameters in < code > /opt/mlmmjadmin/settings.py< / code > , so that
mlmmjadmin can connect to SQL server and manage mailing lists.< / p >
< div class = "admonition attention" >
< p class = "admonition-title" > Attention< / p >
< p > You can find SQL server address, port, database name, SQL username and
password in iRedAdmin config file, the SQL user must have both read and
write privileges to manage < code > vmail< / code > database. iRedMail server usually
use SQL user < code > vmailadmin< / code > for this purpose.< / p >
< / div >
< / li >
< / ul >
< pre > < code > iredmail_sql_db_type = 'pgsql'
iredmail_sql_db_server = '127.0.0.1'
2018-04-18 04:50:33 -05:00
iredmail_sql_db_port = 5432
2018-02-05 21:53:46 -06:00
iredmail_sql_db_name = 'vmail'
iredmail_sql_db_user = 'vmailadmin'
iredmail_sql_db_password = '< password> '
< / code > < / pre >
2018-02-10 10:43:51 -06:00
< ul >
< li > Add extra required parameters in < code > /opt/mlmmjadmin/settings.py< / code > to use the
directory used to store mailing lists:< / li >
< / ul >
< pre > < code > MLMMJ_SPOOL_DIR = '/var/vmail/mlmmj'
2018-03-05 18:17:44 -06:00
MLMMJ_ARCHIVE_DIR = '/var/vmail/mlmmj-archive'
2018-02-10 10:43:51 -06:00
MLMMJ_DEFAULT_PROFILE_SETTINGS.update({'smtp_port': 10027})
< / code > < / pre >
< ul >
< li > If you're running OpenBSD or FreeBSD, please add parameter < code > MLMMJ_SKEL_DIR< / code >
in < code > /opt/mlmmjadmin/settings.py< / code > to set the directory which stores mlmmj mail
templates:< / li >
< / ul >
< pre > < code > MLMMJ_SKEL_DIR = '/usr/local/share/mlmmj/text.skel'
< / code > < / pre >
2018-02-05 21:53:46 -06:00
< ul >
< li > Copy rc/systemd scripts for service control:< / li >
< / ul >
< pre > < code > #
2018-02-06 01:14:34 -06:00
# For RHEL/CentOS 6
#
cp /opt/mlmmjadmin/rc_scripts/mlmmjadmin.rhel /etc/init.d/mlmmjadmin
2018-04-15 07:22:08 -05:00
chmod 0755 /etc/init.d/mlmmjadmin
2018-02-06 01:14:34 -06:00
chkconfig --level 345 on mlmmjadmin
#
2018-02-05 21:53:46 -06:00
# For RHEL/CentOS
#
cp /opt/mlmmjadmin/rc_scripts/systemd/rhel.service /lib/systemd/system/mlmmjadmin.service
chmod 0644 /lib/systemd/system/mlmmjadmin.service
systemctl daemon-reload
systemctl enable mlmmjadmin
2018-02-06 01:14:34 -06:00
#
# For Debian 8, Ubuntu 14.04 and earlier releases which does NOT use systemd
#
cp /opt/mlmmjadmin/rc_scripts/mlmmjadmin.debian /etc/init.d/mlmmjadmin
2018-04-15 07:22:08 -05:00
chmod 0755 /etc/init.d/mlmmjadmin
2018-02-06 01:14:34 -06:00
update-rc.d mlmmjadmin defaults
2018-02-05 21:53:46 -06:00
#
# For Debian 9 and Ubuntu 16.04 which uses systemd
#
cp /opt/mlmmjadmin/rc_scripts/systemd/debian.service /lib/systemd/system/mlmmjadmin.service
chmod 0644 /lib/systemd/system/mlmmjadmin.service
systemctl daemon-reload
systemctl enable mlmmjadmin
#
# For FreeBSD
#
cp /opt/mlmmjadmin/rc_scripts/mlmmjadmin.freebsd /usr/local/etc/rc.d/mlmmjadmin
chmod 0755 /usr/local/etc/rc.d/mlmmjadmin
echo 'mlmmjadmin_enable=YES' > > /etc/rc.conf.local
#
# For OpenBSD
#
cp /opt/mlmmjadmin/rc_scripts/mlmmjadmin.openbsd /etc/rc.d/mlmmjadmin
chmod 0755 /etc/rc.d/mlmmjadmin
rcctl enable mlmmjadmin
< / code > < / pre >
< ul >
< li > Create directory used to store mlmmjadmin log file. mlmmjadmin is
configured to log to syslog directly.< / li >
< / ul >
< pre > < code > #
# For RHEL/CentOS
#
mkdir /var/log/mlmmjadmin
chown root:root /var/log/mlmmjadmin
chmod 0755 /var/log/mlmmjadmin
#
2018-04-06 13:06:20 -05:00
# For Debian
#
mkdir /var/log/mlmmjadmin
chown root:adm /var/log/mlmmjadmin
chmod 0755 /var/log/mlmmjadmin
#
# For Ubuntu
2018-02-05 21:53:46 -06:00
#
mkdir /var/log/mlmmjadmin
chown syslog:adm /var/log/mlmmjadmin
chmod 0755 /var/log/mlmmjadmin
#
# For OpenBSD/FreeBSD
#
mkdir /var/log/mlmmjadmin
chown root:wheel /var/log/mlmmjadmin
chmod 0755 /var/log/mlmmjadmin
< / code > < / pre >
< ul >
< li > Update syslog daemon config file to log mlmmjadmin to dedicated log file:< / li >
< / ul >
< p > For Linux< / p >
< pre > < code > cp /opt/mlmmjadmin/samples/rsyslog/mlmmjadmin.conf /etc/rsyslog.d/
service rsyslog restart
< / code > < / pre >
< p > For OpenBSD, please append below lines in < code > /etc/syslog.conf< / code > :< / p >
< pre > < code > !!mlmmjadmin
local5.* /var/log/mlmmjadmin/mlmmjadmin.log
< / code > < / pre >
< p > For FreeBSD, please append below lines in < code > /etc/syslog.conf< / code > :< / p >
< pre > < code > !mlmmjadmin
local5.* /var/log/mlmmjadmin/mlmmjadmin.log
< / code > < / pre >
< ul >
2018-04-04 00:47:18 -05:00
< li > Now it's ok to start < code > mlmmjadmin< / code > service, it listens on < code > 127.0.0.1:7790< / code >
by default:< / li >
2018-02-05 21:53:46 -06:00
< / ul >
< pre > < code > #
# On Linux/FreeBSD:
#
service mlmmjadmin restart
#
# On OpenBSD
#
rcctl start mlmmjadmin
< / code > < / pre >
2018-07-25 14:29:25 -05:00
< p > On Linux, you can check the port number with command < code > netstat< / code > or < code > ss< / code > like below:< / p >
2018-04-04 00:47:18 -05:00
< pre > < code > netstat -ntlp | grep 7790
2018-07-25 14:29:25 -05:00
ss -ntlp | grep 7790
2018-04-04 00:47:18 -05:00
< / code > < / pre >
< p > On FreeBSD/OpenBSD, run:< / p >
2018-07-24 07:55:23 -05:00
< pre > < code > netstat -anl -p tcp | grep 7790
2018-04-04 00:47:18 -05:00
< / code > < / pre >
2019-01-09 20:47:00 -06:00
< h2 id = "manage-subscribeable-mailing-lists" > Manage subscribeable mailing lists< / h2 >
< p > Please read document < a href = "./manage.subscribeable.mailing.lists.html" > Manage subscribeable mailing lists< / a > .< / p >
2018-02-05 21:53:46 -06:00
< h2 id = "references" > References< / h2 >
< ul >
2018-11-13 19:21:36 -06:00
< li > Mlmmj:< ul >
< li > < a href = "http://mlmmj.org/" > web site< / a > < / li >
< li > < a href = "http://mlmmj.org/docs/tunables/" > Tunable parameters< / a > < / li >
< li > < a href = "http://mlmmj.org/docs/readme-postfix/" > Postfix integration< / a > < / li >
2018-02-05 21:53:46 -06:00
< / ul >
< / li >
2018-11-13 19:21:36 -06:00
< li > < a href = "https://github.com/iredmail/mlmmjadmin" > mlmmjadmin< / a > : RESTful API server used to manage mlmmj mailing lists. Developed
and maintained by iRedMail team.< / li >
< / ul >
< h2 id = "see-also" > See Also< / h2 >
< ul >
< li > < a href = "./integration.mlmmj.ldap.html" > Integrate mlmmj mailing list manager in iRedMail (OpenLDAP backend)< / a > < / li >
< li > < a href = "./integration.mlmmj.mysql.html" > Integrate mlmmj mailing list manager in iRedMail (MySQL/MariaDB backends)< / a > < / li >
< li > < a href = "./integration.mlmmj.pgsql.html" > Integrate mlmmj mailing list manager in iRedMail (PostgreSQL backend)< / a > < / li >
2018-02-05 21:53:46 -06:00
< / ul > < div class = "footer" >
2019-09-06 00:54:43 -05:00
< p style = "text-align: center; color: grey;" > All documents are available in < a href = "https://github.com/iredmail/docs/" > BitBucket repository< / a > , and published under < a href = "http://creativecommons.org/licenses/by-nd/3.0/us/" target = "_blank" > Creative Commons< / a > license. You can < a href = "https://github.com/iredmail/docs/archive/master.zip" > download the latest version< / a > for offline reading. If you found something wrong, please do < a href = "https://www.iredmail.org/contact.html" > contact us< / a > to fix it.< / p >
2018-02-05 21:53:46 -06:00
< / div >
<!-- Global site tag (gtag.js) - Google Analytics -->
< script async src = "https://www.googletagmanager.com/gtag/js?id=UA-3293801-21" > < / script >
< script >
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'UA-3293801-21');
< / script >
< / body > < / html >