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:
Sau khi bắt đầu bộ định tuyến thêm:MAILMAN_HOME=/usr/local/mailman MAILMAN_WRAP=MAILMAN_HOME/mail/mailman
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 mailmanChỉ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-userTạ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
Đăng nhận xét