【IT168 服务器学院】postfix + vm-pop3 + openmail 构造与系统用户无关的虚拟域邮件服务器
操作系统:FreeBSD 4-stable
更新 ports
cvsup -gL 2 -h cvsup.freebsdchina.org /usr/share/examples/cvsup/ports-supfile
安装 apache 服务器
cd /usr/ports/www/apache2/
make install clean
安装 openwebmail。其中加上 WITH_QUOTA 为将来实现磁盘配额作准备。
cd /usr/ports/mail/openwebmail/
make WITH_QUOTA=yes install clean
安装 postfix ,过程中遇到提问都回答 y
cd /usr/ports/mail/postfix/
make install clean
修改:
/etc/rc.conf
加入:
sendmail_enable="YES"
sendmail_flags="-bd"
sendmail_pidfile="/var/spool/postfix/pid/master.pid"
sendmail_outbound_enable="NO"
sendmail_submit_enable="NO"
这是 make install 的时候提示做的,不过有一次我配置的时候忘记了,但系统依然运作正常,还没完全理解会有什么问题。
安装 vm-pop3d
cd /usr/ports/mail/vm-pop3d/
make install clean
配置 postfix
修改:
/usr/local/etc/postfix/main.cf
加入
virtual_alias_maps=hash:/usr/local/etc/postfix/virtual
alias_maps=hash:/usr/local/etc/postfix/aliases
default_privs=nobody
allow_mail_to_commands = alias,forward,include
allow_mail_to_files = alias,forward,include
最后两条很重要,因为默认是不启用aliases中的 :include 支持的,而 openwebmail 修改aliases 文件时是使用该功能。
修改:
/usr/local/etc/postfix/virtual
加入:
jayvan.com # 起码要加个tab,否则会出错
jayvan@jayvan.com jayvan.jayvan.com
上述例子中我加入一个 jayvan.com 的虚拟域,并添加第一个用户 jayvan 以作为系统管理员
执行:
cd /usr/local/etc/postfix/; postmap virtual
生成 virtual.db
修改:
/usr/local/etc/postfix/aliases
加入
jayvan.jayvan.com: /var/spool/virtual/jayvan.com/jayvan
执行:
cd /usr/local/etc/postfix/; postalias aliases
生成 aliases.db
配置 vm-pop3d 自动执行
修改:
/etc/inetd.conf
加入:
pop3 stream tcp nowait root /usr/local/sbin/vm-pop3d vm-pop3d -u nobody
修改:
/etc/rc.conf
加入:
inetd_enable="YES"
当然也可以使用 rc.d 的脚本来执行。
配置 openwebmail 支持 jayvan.com 域
添加文件:
/usr/local/www/cgi-bin/openwebmail/etc/site.conf/jayvan.com
文件必须以虚拟域名为文件名
文件内容:
auth_module auth_vdomain.pl
auth_withdomain yes
mailspooldir /var/spool/virtual/jayvan.com # 注意目录名和域名一致
use_syshomedir no
use_homedirspools no
enable_autoreply no
enable_setforward no
enable_vdomain yes
vdomain_admlist jayvan
vdomain_maxuser 100
vdomain_vmpop3_pwdpath /usr/local/etc/virtual # 这是 vm-pop3d 默认寻找passwd的目录
vdomain_vmpop3_pwdname passwd
vdomain_vmpop3_mailpath /var/spool/virtual
vdomain_postfix_aliases /usr/local/etc/postfix/aliases
vdomain_postfix_virtual /usr/local/etc/postfix/virtual
vdomain_postfix_postalias /usr/local/sbin/postalias
vdomain_postfix_postmap /usr/local/sbin/postmap
执行:
mkdir -p /var/spool/virtual/jayvan.com
chown nobody /var/spool/virtual/jayvan.com
chgrp mail /var/spool/virtual/jayvan.com
mkdir -p /usr/local/etc/virtual/jayvan.com
touch /usr/local/etc/virtual/jayvan.com/passwd
chmod 644 /usr/local/etc/virtual/jayvan.com/passwd
htpasswd /usr/local/etc/virtual/jayvan.com/passwd jayvan
chmod 755 /usr/local/www/cgi-bin/openwebmail/etc/users # 这个很重要,默认该名录权限会导致openwebmail无权访问
重启动系统以启动 postfix 和 vm-pop3,然后就可以使用了。
使用系统管理员账号登录 openwebmail 后可以增加邮件账号。注意登陆的时候要用完整的邮件地址做账号,如:
jayvan@jayvan.com
怎样让 quota 生效还没有研究出来。对于数十人的小公司的内部邮件服务器,我认为这个组合挺好。其中 openwebmail 的网络磁盘功能可以省掉设置个人文件服务器共享。
目前似乎没看到 openwebmail 中能自动设置群发账号,如果确实没有,这是一个缺点。自动注册账号功能尽管是很有用的,但对于这类型的公司用户来说,没有问题也不算太大。openwebmail 里增加用户的功能勉强还是可满足要求的。