postfix + vm-pop3 + openmail 构造与系统用户无关的虚拟域邮件服务器

发表于:2007-06-08来源:作者:点击数: 标签:
操作系统: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 为将来实现磁盘配额作
操作系统: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 的虚拟域,并添加第一个用户 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 后可以增加邮件账号。注意登陆的时候要用完整的邮件地址做账号,如:
[email protected]

怎样让 quota 生效还没有研究出来。对于数十人的小公司的内部邮件服务器,我认为这个组合挺好。其中 openwebmail 的网络磁盘功能可以省掉设置个人文件服务器共享。
目前似乎没看到 openwebmail 中能自动设置群发账号,如果确实没有,这是一个缺点。自动注册账号功能尽管是很有用的,但对于这类型的公司用户来说,没有问题也不算太大。openwebmail 里增加用户的功能勉强还是可满足要求的。

_________________

原文转自:http://www.ltesting.net