All Projects → iredmail → mlmmjadmin

iredmail / mlmmjadmin

Licence: other
A simple RESTful API server used to manage mlmmj (http://mlmmj.org) mailing list manager.

Programming Languages

python
139335 projects - #7 most used programming language
shell
77523 projects

Projects that are alternatives of or similar to mlmmjadmin

CYMailDemo
A mail client base on mailcore2
Stars: ✭ 14 (-64.1%)
Mutual labels:  mail
Mail
The Hoa\Mail library.
Stars: ✭ 24 (-38.46%)
Mutual labels:  mail
KP.GmailClient
A Gmail client for C#
Stars: ✭ 17 (-56.41%)
Mutual labels:  mail
postmark-wordpress
The Official Postmark Wordpress Plugin
Stars: ✭ 17 (-56.41%)
Mutual labels:  mail
sendcloud
SendCloud Mail SDK
Stars: ✭ 21 (-46.15%)
Mutual labels:  mail
easymail
Easy way to install a mail server.
Stars: ✭ 60 (+53.85%)
Mutual labels:  mail
ModMail
A Discord ModMail Bot.
Stars: ✭ 54 (+38.46%)
Mutual labels:  mail
javayh-platform
javayh-platform 使用Springboot2.2.6为开发脚手架,SpringCloud为云端服务框架,Nacos为注册中心、分布式配置管理中心,Oauth2协议实现统一授权,Mybatis作为持久层框架,提供了代码生成器,SQL防注入,SwaggerAPI文档,Redis 作为缓存服务等强大的功能
Stars: ✭ 32 (-17.95%)
Mutual labels:  mail
Android-Email-App-using-Javamail-Api
An Android App to send mail without gamil/email interaction!
Stars: ✭ 19 (-51.28%)
Mutual labels:  mail
postal
✉️ A fully featured open source mail delivery platform for incoming & outgoing e-mail
Stars: ✭ 12,134 (+31012.82%)
Mutual labels:  mail
Galleon
A badass SMTP mail server built on Node to make your life simpler.
Stars: ✭ 14 (-64.1%)
Mutual labels:  mail
mailparse
Rust library to parse mail files
Stars: ✭ 148 (+279.49%)
Mutual labels:  mail
Meteor-Mailer
📮 Bulletproof email queue on top of NodeMailer with support of multiple clusters and servers setup
Stars: ✭ 21 (-46.15%)
Mutual labels:  mail
homebridge-messenger
Send HomeKit messages with HomeBridge (Pushover / IFTTT / Email)
Stars: ✭ 74 (+89.74%)
Mutual labels:  mail
aliyun-direct-mail
[DEPRECATED] 阿里云 DirectMail for Laravel.
Stars: ✭ 26 (-33.33%)
Mutual labels:  mail
hermes
Automates programmables à réaction aux échanges électroniques depuis une boîte IMAP4
Stars: ✭ 15 (-61.54%)
Mutual labels:  mail
mail
golang send mail with SSL,TLS and support NTLM,LOGIN,PLAIN AUTH...
Stars: ✭ 29 (-25.64%)
Mutual labels:  mail
mailer
Generic mailer
Stars: ✭ 16 (-58.97%)
Mutual labels:  mail
wp-smtp
Simple package for handling WordPress SMTP with .env when using the Roots stack.
Stars: ✭ 31 (-20.51%)
Mutual labels:  mail
yapople
Yet another POP3 email library
Stars: ✭ 22 (-43.59%)
Mutual labels:  mail

mlmmjadmin

Don't forget to check out our lightweight email archiving software: https://spiderd.io/

mlmmjadmin is RESTful API server used to manage mlmmj (mailing list manager). Check docs/ directory for more detailed documents.

mlmmjadmin is a core component of iRedMail (since version 0.9.8), but it should work with any mail server which runs mlmmj. You're free to develop your own backend plugin to store basic info of mlmmj mailing lists in your SQL/LDAP database (or any other database, it's up to you) for better integration with your mail server.

License

MIT License.

Requirements

  • A working mail server with a working mlmmj instance.
    • Mlmmj data is configured to be stored under /var/spool/mlmmj by default, it must be owned by user/group mlmmj:mlmmj with permission 0700. if you use a different directory, please override default setting by adding setting MLMMJ_SPOOL_DIR = '<directory>' in config file.
  • Python 3.5+. If you're running Python 2, please use mlmmjadmin-2.1 instead.
  • Extra Python modules:
    • web.py
    • requests. Required by command line tool tools/maillist_admin.py.

Setup mlmmj

Please follow iRedMail tutorials to integrate mlmmj with Postfix first, make sure it's working properly:

Setup mlmmjadmin

NOTE: We use version 3.0 for example below.

cd /opt
ln -s mlmmjadmin-3.0 mlmmjadmin
  • Generate config file by copying sample file, settings.py.sample:
cp settings.py.sample settings.py
chown mlmmj:mlmmj settings.py
chmod 0400 settings.py
  • Open settings.py, make sure all settings are proper. The config file is short, please spend few seconds to read all parameters and the comment lines.
  • Generate a long string as API auth token, it will be used by your API client. For example:
$ echo $RANDOM | md5sum
43a89b7aa34354089e629ed9f9be0b3b
  • Add this string in config file settings.py, parameter api_auth_tokens, like below:
api_auth_tokens = ['43a89b7aa34354089e629ed9f9be0b3b']

You can add as many token as you want for different API clients. For example:

api_auth_tokens = ['43a89b7aa34354089e629ed9f9be0b3b', '703ed37b20243d7c51c56ce6cd90e94c']
  • Copy rc/systemd scripts for service control:
#
# 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

#
# For Debian 9 and Ubuntu 16.04 which 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
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
  • Create directory used to store mlmmjadmin log file. mlmmjadmin is configured to log to syslog directly.
#
# For RHEL/CentOS
#
mkdir /var/log/mlmmjadmin
chown root:root /var/log/mlmmjadmin
chmod 0755 /var/log/mlmmjadmin

#
# For Debian/Ubuntu
#
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
  • Update syslog daemon config file to log mlmmjadmin to dedicated log file:

For Linux

cp /opt/mlmmjadmin/samples/rsyslog/mlmmjadmin.conf /etc/rsyslog.d/
service rsyslog restart

For OpenBSD, please append below lines in /etc/syslog.conf:

!!mlmmjadmin
local5.*            /var/log/mlmmjadmin/mlmmjadmin.log

For FreeBSD, please append below lines in `/etc/

!mlmmjadmin
local5.*            /var/log/mlmmjadmin/mlmmjadmin.log
  • Now ok to start mlmmjadmin service:
service mlmmjadmin restart

Interactive with curl

# Create a new mailing list
curl \
    -X POST \
    --header 'X-MLMMJADMIN-API-AUTH-TOKEN: 43a89b7aa34354089e629ed9f9be0b3b' \
    -d "[email protected]&only_subscriber_can_post=yes"
    http://127.0.0.1:7790/[email protected]

# Update a mailing list
curl \
    -X PUT \
    --header 'X-MLMMJADMIN-API-AUTH-TOKEN: 43a89b7aa34354089e629ed9f9be0b3b' \
    -d "only_subscriber_can_post=no"
    http://127.0.0.1:7790/[email protected]

# Delete a mailing list
curl \
    -X DELETE \
    --header 'X-MLMMJADMIN-API-AUTH-TOKEN: 43a89b7aa34354089e629ed9f9be0b3b' \
    http://127.0.0.1:7790/[email protected]

Manage mailing lists from command line

Script tools/maillist_admin.py supports basic management from command line, pleasae run it without any argument to get detailed help information.

Tips

mlmmj will log its operaions in 2 files under mailing list directory:

  • mlmmj.operation.log: mlmmj logs mail sending, rejecting, subscription, etc in this file.
  • mlmmj-maintd.lastrun.log: mlmmj logs maintenance related task info in this file.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].