qmail是一个因特网邮件传送代理(简写为MTA),它运行在linux/Unix兼容系统下,是一个直接代替UNIX下Sendmail软件的邮件传送程序。qmail使用SMTP协议与其它系统上的MTA交换邮件。

 
 

介绍

  作为 Linux下面主流的邮件系统内核,大量著名的商业邮件系统都是在Qmail内核下开发,比如Hotmail
Qmail

Qmail

等。Qmail具有安装方便、 安全性高、邮件结构合理、 支持SMTP服务、队列管理、邮件反弹、基于域名的邮件路由、SMTP传输、转发和邮件列表、本地(邮件)传送、POP3 服务等强大的功能。它已经逐渐替代传统的Sendmail成为linux下邮件 系统内核的主流选择。qmail是面向安全而设计的,作者曾经悬赏500美元来找出qmail的安全漏洞,但是直到2006年,还是没有人能领取这笔奖金。
 
  qmail的主要竞争对手是Exim以及Postfix。与它的竞争对手不同的是,Qmail已经许多年没有更新了,用户已经习惯于通过第三方的插件及补丁来使qmail增加新的功能。
 
  qmail 的源代码现已开放为公有领域。

 

简单配置及使用

目录

  qmail 安装部署 1

 

  一、 准备工作 1

 

  二、 LAMP残留(执行即可) 1

 

  三、上传所需安装包 2

 

  四、 检查DNS配置 2

 

  五、 设置或关闭防火墙 2

 

  六、 卸载已有的邮件系统 3

 

  七、 解压缩netqmail-1.05.tar.gz 3

 

  八、 安装daemontools 3

 

  九、 安装ucspi-tcp 3

 

  十、 创建所需的用户 4

 

  十一、 准备安装qmail 4

 

  十二、 qmail编译安装 5

 

  十三、 设置管理员的邮箱地址 5

 

  十四、 开启SPF设置 5

 

  十五、 添加qmail的帮助手册 5

 

  十六、 为qmail服务建立监控目录和日志文件 5

 

  十七、 检查服务 6

 

  十八、 安装vpopmail 7

 

  十九、 检查服务 9

 

  二十、 用POP3和SMTP测试 10

 

  二十一、安装qmailadmin 14

过程

  过程一:Qmail的安装。

 

  1. 获得Qmail程序。

 

  Qmail是自由软件,在Internet上可以获得它的源代码(C源代码)及基于各种平台和操作系统的二进制文件。二进制文件可以不须编译直接使用,但要注意选择与您的平台和操作系统版本一致的文件,否则可能不能使用。源代码可以在您的任何环境下工作(UNIX)但需要自己进行编译安装。这里我们选择源代码。从Internet上下载的源代码通常是以tar程序打的包然后再用压缩软件进行压缩。如:qmail-1.03.tar.gz 这里使用的是gzip进行压缩的(假设你的机器上已安装了gzip)。使用 gzip -d qmail-1.03.tar.gz 解压缩成qmail-1.03.tar 然后再用tar -xvf qmail-1.03.tar 解包成qmail-1.03目录。那么源代码文件均在此目录中了。

 

  2. 编译安装Qmail。

 

  Qmail源代码文件中有几个配置文件可以修改以适合您的环境。

 

  conf-qmail :此文件包含Qmail的安装目录,默认值是 /var/qmail/

 

  conf-users:此文件包含Qmail需要使用的用户,默认用户是 root,alias,(这两个用户在unix下应该已经由系统建立好了,下面的用户应该自己创)qmails,qmaid,qmaill, qmailr,qmailq,qma-ilp。

 

  conf-groups:此文件包含Qmail 需要使用的组,默认的组为qmail(qmails,qmaild,qmaill,qmailr,qmailq,qmailp要属于此组)。

 

  conf-cc:此文件包含Qmail使用的编译器,默认使用cc编译器,如须使用其它C编译器,应该将其替换为此编译器如 gcc.

 

  conf-ld:此文件包含Qmail使用的编译器,默认使用cc编译器,如须使用其它C编译器,应该将其替换为此编译器如 gcc

 

  在进行安装前系统应该已经安装了make命令。

 

  定制好这些文件后,在/var/qmail/下使用命令:make。make命令将编译源代码、连接.obj 文件。如果此过程中断或出错,应参考上面配置文件正确与否。用户和组建立的正确与否。如果此过程没有问题使用命令:make check setup。此命令将安装所有文件到/var/qmail/(在执行此命令前先用 makedir /var/qmail 创建该目录)下。

 

  另外需要安装checkpasswd,它的获得和安装和Qmail一样。此程序用于用户使用POP3协议收取邮件时对用户的密码验证。

 

  过程二:Qmail的初级配置

 

  Qmail安装好了以后将在/var/qmail/下生成若干文件和目录。

 

  1.用vi 编辑器打开文件 /etc/inetd.conf,并在文件尾添加如下行:

 

  smtp stream tcp nowait qmaild /var/qmail/bin/tcp-env

 

  tcp-env /var/qmail/bin/qmail-smtpd (和上面一行同在一行)

 

  pop3 stream tcp nowait root /var/qmail/bin/qmail-popup

 

  qmail-popup yourname /bin/checkpassword

 

  /var/qmail/bin/qmail-pop3d Maildir(和上面两行同在一行)

 

  其中yourname是您的完整的Internet主机名,Maildir 是采用的邮箱格式(这里我们使用较流行的Maildir格式)

 

  2.检查/etc/services文件中是否有如下两行,如没有则添加进去:

 

  smtp 25/tcp mail

 

  pop3 110/tcp # Post Office

 

  3. DNS中有关Qmail的设置.

 

  如果Qmail的邮件是与Internet上的其它邮件服务器交互的话(否则只能此服务器的邮件用户相互收发邮件了),还需要在DNS服务器中设置有关 Qmail的条目(如果使用别人的DNS服务器,应向DNS管理员申请添加条目)即添加一条关于邮件交换的条目(具体的设置请向DNS管理员咨询)

 

  4. 控制文件的创建

 

  Qmail的控制文件放在/var/qmail/control/下,如果不与Internet上的邮件服务器互传邮件的话,需要配置很多的文件。否则最简单的只需配置一个文件:me

 

  它的内容是此邮件服务器的完整Internet主机名即:yourname

 

  过程三:邮件用户的创建

 

  邮件用户就是系统用户,所以您应该向系统添加用户,为了安全和管理的需要,最好创建一个E-mail用户组,将E-mail用户归属于此组,创建用户目录时最好在同一个文件系统下创建在同一个目录下(当然此文件系统不够大时可以创建在其它文件系统的某个目录下)

 

  然后,在每个用户的初始目录下用命令:/var/qmail/bin/maildirmake创建邮箱目录并赋予适当的权限,您可以使用Shell脚本来完成每个用户邮箱的创建,下面是此脚本的一个简单的例子:

 

  if test $1

 

  then

 

  echo "Creating $1's directory and file..."

 

  useradd -d /usr/email-users/$1 -g emusers -s /bin/passwd $1

 

  cd /usr/email-users/

 

  mkdir $1

 

  chown $1 $1

 

  cd $1

 

  /var/qmail/bin/maildirmake Maildir

 

  echo ./Maildir/ > .qmail

 

  chown $1 Maildir

 

  chown $1 Maildir/*

 

  chown $1 .qmail

 

  echo "Please input $1's email password"

 

  passwd $1

 

  echo "$1's account has been created!!!"

 

  else

 

  echo "Please input the user'name!"

 

  fi

 

  系统管理员可以使用emuadd email_user_name (此脚本的文件名,并将此文件存放在/bin下)来传建email_user_name的邮箱

 

  过程四:Qmail系统的使用

 

  当上述过程结束后重新启动计算机

 

  在邮件客户端程序中设置如下:(假如E-mail服务器的主机名为your,name,DNS中设置的邮件交换管理的域为mail.domain,注意:通常mail.domain与.name相同,以E-mail用户user为例)

 

  电子邮件地址:user@mail.domain

 

  SMTP服务器地址:yourname

 

  POP3服务器地址:yourname

 

  POP3账号:user

 

  POP3账号密码:(由管理员给你,可以自己修改)

 

启动设置

  Qmail 运行有两种方式。tcpserver,xinet。 当域名解析有问题的时候,tcpserver运行会有问题。

 

  qmail1.0.8,ucspi-tcp-0.88

 

  (1) tcpserver方式

 

  # pop3 设置

 

  /usr/local/bin/tcpserver -P -H -R 0 pop-3 /var/qmail/bin/qmail-popup /home/vpopmail/bin/vchkpw /var/qmail/bin/qmail-pop3d Maildir 2>&1 | /var/qmail/bin/splogger &

 

  # smtpd 设置

 

  /usr/local/bin/tcpserver -H -R -t 1 -v -P -x/etc/qmail/tcp.smtp.cdb -u 511 -g 506 smtp /var/qmail/bin/qmail-smtpd /home/vpopmail/bin/vchkpw /bin/true | /var/qmail/bin/splogger &

 

  (2) xinetd方式

 

  /etc/xinetd.d/pop3-3

 

  service pop-3

 

  {

 

  disable = no

 

  socket_type = stream

 

  wait = no

 

  user = root

 

  server = /var/qmail/bin/qmail-popup

 

  nice = 10

 

  server_args = home/vpopmail/bin/vchkpw /var/qmail/bin/qmail-pop3d Maildir &

 

  }

 

  /etc/xinetd.d/smtp

 

  service smtp

 

  {

 

  disable = no

 

  socket_type = stream

 

  wait = no

 

  user = vpopmail

 

  server = /var/qmail/bin/qmail-smtpd

 

  nice = 10

 

  server_args = /home/vpopmail/bin/vchkpw /bin/true

 

  }