最近公司想做一个邮件系统,要限制只可以由指定人员发送电邮给清单上的人。研究了一下,决定使用postfix + mailman 来搅定。既方便会员取消订阅,又可以很简单限制其他人发送讯息到这个清单。
以下是是很简单的设定步骤
OS: CentOS 6.3 minial install
安装 Apache
安装 mailman
yum -y install mailman
修改管理员密码:
# /usr/lib/mailman/bin/mmsitepass
设定Config file
# vi /usr/lib/mailman/Mailman/mm_cfg.py
加入
MTA = 'Postfix'
DEFAULT_SERVER_LANGUAGE = 'en' #设定网页介面预设语言 zn_CN zh_TW en 等
如果已设定好主机的 FQDN 的话, 下面2个不用改, 否则改成
DEFAULT_URL_HOST = 'yourhost.yourdomain.com'
DEFAULT_EMAIL_HOST = 'yourdomain.com'
DEFAULT_SUBJECT_PREFIX = '[%(real_name)s:%%d]'
生成aliases文件
# /usr/lib/mailman/bin/genaliases
# chown mailman. /etc/mailman/aliases*
# chmod g+w /etc/mailman/aliases*
首先必须建立mailman的邮件列表, mailman 服务才能够正常启动. 否则会出现 'Site list is missing: mailman' 错误
#/usr/lib/mailman/bin/newlist mailman
检查MailMan状态,加-f可以自动修复错误
#/usr/lib/mailman/bin/check_perms
#/usr/lib/mailman/bin/check_perms -f
启动mailman
# service mailman start
重新启动apache server
# service httpd restart
增加其他mailing list
# /usr/lib/mailman/bin/newlist test
修改postfix 设定文件, 顺便把 mailman 的别名库加到postfix 上,
# vi /etc/postfix/main.cf
myhostname = yourhost.yourdomain.com
myorigin = $myhostname
inet_interfaces = all #把这句取消注解
#inet_interfaces = localhost #把这句注解掉
inet_protocols = ipv4
mynetworks = 127.0.0.0/8, 你的内部ip, eg: 192.168.1.0/24, hash:/etc/postfix/access
alias_maps = hash:/etc/aliases, hash:/etc/mailman/aliases
设定postfix access 文件
# vi /etc/postfix/access
192.168.1.0/24 OK
yourdomain.com OK
由access 文件生成资料库
# postmap hash:/etc/postfix/access
重新启动postfix
# service postfix restart
安装 Dovecot
# yum -y install dovecot
# vi /etc/dovecot/dovecot.conf
# 找到底下这一行,複製新增一行内容如下:
#protocols = imap pop3 lmtp
protocols = pop3
# vi /etc/dovecot/conf.d/10-ssl.conf
ssl = no #改成no, 不使用ssl 连线
# vi /etc/dovecot/conf.d/10-auth.conf
disable_plaintext_auth = no #改成no, 允许使用明码登入
设定邮箱存放位置
# vi /etc/dovecot/conf.d/10-mail.conf
mail_location = mbox:~/mail:INBOX=/var/mail/%u #这行取消注解
启动 dovecot
service dovecot start
如果一切ok的话, 可以连到mailman 网上管理平台了。
http://yourdomain.com/mailman/admin/
(责任编辑:好模板) |