哇 , 真的是麻烦的要死。
Mailman
Mailman 是GNU的一款开源邮件列表管理软件,使用python编写。
需要注意的是,Mailman和Mailman3分别使用python2 和python 3 编写的,官网也是一个”3“的区别。
安装
可以通过 源码 APT pip安装,这里我选择apt
a) Apache 环境
# update source for ubuntu
sudo apt update
# install MySQL and PHP ( for apache full env )
sudo apt install mysql-server mysql-client
sudo apt install php libapache2-mod-php phpmyadmin
# install apache
sudo apt install apache2
b) 邮件服务
官方推荐exim4 或者 postfix 。 其他兼容的也可以。
我使用的是exim4
sudo apt install exim4
安装时需要配置:
[1] 邮件系统设置的常见类型:互联网站;直接通过 SMTP 发送或接收信件
[2] 系统邮件名称:: youdomain
(这个解析服务一定要填写你的域名)
[3] 要监听入站 SMTP 连接的 IP 地址:(留空)
( 或者 127.0.0.1 ; ::1 ; ::25 等方式配置你自己的端口)
[4] 其它可接收邮件的目的地址:localhost.localdomain; youdomain
[5] 为下列域名进行邮件中转 (relay):(留空) │
[6] 为下列主机进行邮件中转 (relay):(留空)
[7] 保持最小 DNS 查询量吗 (按需拔号,Dial-on-Demand)?<否>
[8] 本地信件的投递方式:根目录
[9] 将设置文件分拆成小文件吗?<否>
(虽然官方建议拆成小的文件,但是自己小服务器没必要拆一堆,反而麻烦)
[10] 邮件保存位置 自己整个有权限的
如果已经配置,可以
dpkg-reconfigure exim4-config
再次配置
3)Mailman
安装
sudo apt install mailman
配置
sudo cp /etc/mailman/apache.conf /etc/apache2/sites-available/mailman.conf
# add mailman conf
sudo a2ensite mailman.conf
# enable cgi module ,defalt not
sudo a2enmod cgi
sudo service apache restart
newlist mailman
(按照官方输出提示操作即可)
管理者:邮箱地址
密码:
添加aliaes
4) 其他
首先
service apache start # or restart
service mailman start
可以使用 service XXX status查看状态
如果进程混乱,可以先全部杀光再开
- 查看mailman崩溃日志 出现锁占用
杀光 !
# kill all process has name 'mailman'
pgrep mailman | xargs kill
# kill all process has name 'python'
pgrep python | xargs kill
- 404 Not Found
出现这个问题一般是阿apache.我习惯把步骤3)的mailman.conf加到/etc/apache2/apache.conf文件尾。然后chgrp /usr/lib/cgi-bin/mailman 为 www-data
- 403 Forbiden
这种情况有点多, 一种是权限不够,chmod给你指定的目录
(777 完全访问 ,但CGI文件需要755 执行权限)
一种是cgi模块未启动 ,在 /var/www/html/下编写以下test.cgi脚本,并给它chmod 755 赋予执行权限 。
#!/bin/bash
echo "Content-type: text/html"
echo ''
echo 'CGI Bash Example'
还有一种是解释问题,在你的apache.conf里文件尾加入的配置里,将ExeCGI 该车 +ExeCGI ,重启apache
- 启动mailman时 Site list is missing
list_lists 列出你的邮件列表, 修改你的mailman配置文件 mm_cfg.py (/etc/lib/mailman/Mailman/mm_cfg,py 貌似在这 , 不在可以 ’ find / -name mm_cfg.py ’ 找出来 ) ,把你的邮件列表名改成你创的
- mailman启动非法域名
改mm_cfg.py ,里的域名,改成你的域名
但问题可能无穷无尽 , log地址:
mailman : /var/log/mailman
exim4: /var/log/exim4