Cách cài đặt Mailman trên VPS với DirectAdmin




Mailman là một phần mềm miễn phí để quản lý thư điện tử và thảo luận danh sách các bản tin điện tử. Bài viết dưới đây là hướng dẫn về cách cài đặt Mailman trên VPS với một bảng điều khiển DirectAdmin được cài đặt trên đó.

Xem thêm: thuê máy chủ ảo VPS- được gì


Để cài đặt nó trên VPS bạn thực hiện các lệnh như sau:


cd /usr/local/src
/usr/sbin/useradd -r -s /bin/false mailman
mkdir /usr/local/mailman
chown mailman:mailman /usr/local/mailman
chmod 02775 /usr/local/mailman
wget http://ftp.gnu.org/gnu/mailman/mailman-2.1.15.tgz
tar xzf mailman-2.1.15.tgz
cd mailman-2.1.15
./configure --with-cgi-gid=apache
make
make install
chmod 755 /usr/local/mailman/cgi-bin
chmod u-s,g-s /usr/local/mailman/cgi-bin/*
chmod 777 /usr/local/mailman/logs
chown -R mailman:mailman /usr/local/mailman
chown nobody:mailman /usr/local/mailman/logs/error
/usr/local/mailman/bin/newlist -q -e your-hostname.com mailman mailman@your-hostname.com your_password

Xin đừng quên thay đổi 'your_password' và 'your-hostname.com' theo.

Chỉnh sửa tập tin cấu hình Exim '/etc/exim.conf' và thêm các dòng sau:

Trước khi primary_hostname thêm vào:
MAILMAN_HOME=/usr/local/mailman
MAILMAN_WRAP=MAILMAN_HOME/mail/mailman
Sau khi bắt đầu bộ định tuyến thêm:

mailman_router:
driver = accept
require_files = MAILMAN_HOME/lists/$local_part/config.pck
local_part_suffix_optional
local_part_suffix = -bounces : -bounces+* : \
-confirm+* : -join : -leave : \
-owner : -request : -admin
transport = mailman_transport


Sau đó bạn sử dụng các lệnh tiếp

mailman_transport:
driver = pipe
command = MAILMAN_WRAP \
'${if def:local_part_suffix \
{${sg{$local_part_suffix}{-(\\w+)(\\+.*)?}{\$1}}} \
{post}}' \
$local_part
current_directory = MAILMAN_HOME
home_directory = MAILMAN_HOME
user = apache
group = apache
Thêm các dòng sau vào tập tin '/ etc / aliases' của bạn:

mailman:              "|/usr/local/mailman/mail/mailman post mailman"
mailman-admin:        "|/usr/local/mailman/mail/mailman admin mailman"
mailman-bounces:      "|/usr/local/mailman/mail/mailman bounces mailman"
mailman-confirm:      "|/usr/local/mailman/mail/mailman confirm mailman"
mailman-join:         "|/usr/local/mailman/mail/mailman join mailman"
mailman-leave:        "|/usr/local/mailman/mail/mailman leave mailman"
mailman-owner:        "|/usr/local/mailman/mail/mailman owner mailman"
mailman-request:      "|/usr/local/mailman/mail/mailman request mailman"
mailman-subscribe:    "|/usr/local/mailman/mail/mailman subscribe mailman"
mailman-unsubscribe:  "|/usr/local/mailman/mail/mailman unsubscribe mailman"


Sau đó, thực hiện các lệnh sau
newaliases

/usr/local/mailman/bin/config_list -i /usr/local/mailman/data/sitelist.cfg mailman

Sau đó thực hiện 1 lệnh Script:

vi /etc/init.d/mailman
#!/bin/sh
#
# mailman    This shell script starts and stops GNU Mailman.
PYTHON=/usr/bin/python
MAILMANHOME=/usr/local/mailman
MAILMANCTL=$MAILMANHOME/bin/mailmanctl

SRC_CRON_SCRIPT=$MAILMANHOME/cron/crontab.in
DST_CRON_SCRIPT=/etc/cron.d/mailman

function InstallCron()
{
    install -m644 -o root -g root $SRC_CRON_SCRIPT $DST_CRON_SCRIPT
}

function RemoveCron()
{
cat > $DST_CRON_SCRIPT <<EOF
# DO NOT EDIT THIS FILE!
#
# Contents of this file managed by /etc/init.d/mailman
# Master copy is /usr/local/mailman/cron/crontab.in
# Consult that file for documentation
EOF
}

# Source function library.
. /etc/rc.d/init.d/functions

RETVAL=0
prog="mailman"

function start()
{
    echo -n $"Starting $prog: "
    daemon $PYTHON $MAILMANCTL -s -q start
    RETVAL=$?
    if [ $RETVAL -eq 0 ]
    then
        touch /var/lock/subsys/$prog
        InstallCron
    fi
    echo
    return $RETVAL
}

function stop()
{
    echo -n $"Shutting down $prog: "
    daemon $PYTHON $MAILMANCTL -q stop
    RETVAL=$?
    if [ $RETVAL -eq 0 ]
    then
        rm -f /var/lock/subsys/$prog
        RemoveCron
    fi
    echo
    return $RETVAL
}

function restart()
{
    stop
    start
    RETVAL=$?
    return $RETVAL
}

case "$1" in
'start')
    start
    RETVAL=$?
    ;;

'stop')
    stop
    RETVAL=$?
    ;;

'restart')
    restart
    RETVAL=$?
    ;;

'condrestart')
    $PYTHON $MAILMANCTL -q -u status
    retval=$?
    if [ $retval -eq 0 ]
    then
        restart
        RETVAL=$?
    fi
    ;;

'status')
    $PYTHON $MAILMANCTL -u status
    RETVAL=$?
    ;;

*)
    echo $"Usage: $prog {start|stop|restart|condrestart}"
    ;;

esac
exit $RETVAL


Thực hiện các lệnh sau:
chmod 755 /etc/init.d/mailman
chkconfig --add mailman
Chỉnh sửa tệp 'mm_cfg.py':

vi /usr/local/mailman/Mailman/mm_cfg.py
DEFAULT_EMAIL_HOST = 'mail.your_domain.com'
DEFAULT_URL_HOST = 'www.your_domain.com'
IMAGE_LOGOS = '/mailman_images/'
add_virtualhost(DEFAULT_URL_HOST, DEFAULT_EMAIL_HOST)
VIRTUAL_HOSTS = {'www.your-domain.com': 'your-domain.com'}

Thêm dòng sau vào tập tin cấu hình Apache '/etc/httpd/conf/httpd.conf':
Include conf/extra/mailman.conf

Tạo tệp tin cấu hình 'mailman.conf' (thay đổi 'Your_IP_address' bằng địa chỉ IP thực của bạn):
vi /etc/httpd/conf/extra/mailman.conf

Alias /mailman_images/ /usr/local/mailman/icons/
Alias /mailman/archives/ /usr/local/mailman/archives/public/
Alias /pipermail/ /usr/local/mailman/archives/public/
ScriptAlias /mailman/ /usr/local/mailman/cgi-bin/
RedirectMatch ^/mailman[/]*$ http://Your_IP_address/mailman/listinfo


Tạo  ‘.htaccess’ file:

vi /usr/local/mailman/.htaccess

AuthName "Mailman"
AuthType Basic
AuthUserFile /usr/local/mailman/cgi-bin/.htpasswd
require valid-user
Tạo file ‘.htpasswd’ :

cd /usr/local/mailman/cgi-bin/
touch .htpasswd
htpasswd -c .htpasswd mailman

Khởi động lại dịch vụ Exim và Apache của bạn để những thay đổi có hiệu lực và bắt đầu dịch vụ Mailman:
/etc/init.d/exim restart
/etc/init.d/httpd restart
/etc/init.d/mailman start

Bạn có thể tạo một danh sách gửi thư mới bằng cách nhập thông tin có liên quan tại:
https://Your_IP_address/mailman/create
username: mailman
password: your_password


Tất nhiên bạn sẽ không phải làm gì nếu chọn gói vps tại https://inet.vn/vps. Chúng tôi luôn sẵn sàng 24/7 để đảm bảo phục vụ bạn nhanh nhất có thể.

Hãy share nếu bài này có ích nhé.




Nhận xét

Bài đăng phổ biến từ blog này

Hướng dẫn khắc phục lỗi ngôn ngữ trên vps khiến chúng không chạy được tool?

Cpanel-based servers bị redirect về những trang web xấu

Sự khác biệt giữa VPS, VDS và PDS là gì?