服务器 频道

postfix+vm-pop3+openmail 构造邮件服务器

  【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 里增加用户的功能勉强还是可满足要求的。
  

0
相关文章