Sendmail的邮件用户与系统用户分离

12/3/2006来源:Qmail人气:5517

Sendmail 是目前在互联网上应用得最为广泛的SMTP 服务器之一,但在一般情况下,它并不能独立使用,还需要与UNIX/linux操作系统自身的mail 应用结合。而且每增加一个邮件用户,实际上就是增加一个系统用户。这样做,不仅使用不方便,在用户很多时,还会大大增加系统的开销,影响服务器的性能;同时,由于邮件用户可能来自整个互联网的四面八方,系统用户的口令在网上传送,也增加了系统的危险性。这里介绍一种可以使邮件用户与系统用户分开的方法,供参考。

  一. 系统环境

  以 Linux 操作系统(Redhat 5.2) 为例

  二. 安装 mh软件包

  1. 下载

  可在中国自由软件库(http://freesoft.cei.gov.cn)站点下载mh-6.8.4-2.tar.gz 软件包。

  2. 编译

  在mh软件包已下载完毕后,即可进行编译,步骤如下:

$ tar -zxvf mh-6_8_4-2_tar.gz
$ cd mh-6.8.4
$ cd conf
$ vi MH # 调整或增加部分参数如下(其余参数用缺省值即可):
bin /usr/local/bin # 执行命令的安装目录
etc /usr/local/etc/mh # 系统调用程序的安装目录
mandir /usr/local/man # 帮助文件的安装目录
ccoptions # 去掉 "-traditional",其余不变
ldoptlibs -lcrypt
mts sendmail/smtp # 用sendmail投递邮件
pop on # 支持POP服务
popdir /usr/local/lib/mh #popd 的安装目录
options POPSERVICE='"pop-3"'
# pop-3应与/etc/services 文件110/tcp端口定义的服务名一致
options POSIX
options BSD42
options BSD43

(各参数的意义及用法,可参考 conf/READ-ME文件)

$ vi ./config/mtstailor # 确定 sendmail参数对应sendmail的可执行文件,如:
sendmail: /usr/sbin/sendmail
$ vi ./config/mtstailor # 确定 sendmail参数对应sendmail的可执行文件,
如:sendmail: /usr/sbin/sendmail
$ make
$ ./mhconfig MH
$ cd ../
$ make

  3. 安装

$su
# mkdir -p /usr/local/bin /usr/local/lib/mh
/usr/local/etc/mh /usr/local/man #生成字安装目录
# make inst-all # 完全安装

   三. 安装 sendmail软件包

  1. 下载

  可在中国自由软件库(http://freesoft.cei.gov.cn)站点下载sendmail.8.11.0.tar.gz 软件包。

  2. 编译

  在sendmail软件包已下载完毕后,即可进行编译,步骤如下:

$ tar -zxvf sendmail.8.11.0.tar.gz
$ cd sendmail-8.11.0
$ cd sendmail
$ ./Build # 编译 sendmail

  3. 安装

$ ./Build install

  4. 配置

$ cd ../../cf/ostype
$ vi linux.m4 #增加一行:
define(`POP_MAILER_PATH', `/usr/local/etc/mh/spop')
...
$ cd ../cf/
$ vi generic-linux.mc #增加一行:
MAILER(pop)dnl
$ m4 ../m4/cf.m4 ./genric-linux.mc > sendmail.cf
$ su
# cp ./sendmail.cf /etc/mail
# chmod g-w /etc/mail/sendmail.cf
# cp /etc/sendmail.cw /etc/mail/local-host-names #存放该服务器的域名,

  四. 调试

   假设邮件服务器的域名为:test.com,现在要新开一个邮箱:test@test.com,并进行测试:

# /usr/sbin/useradd -d /home/pop -m pop # 生成pop 用户
# passwd -l pop #锁定pop用户
# chmod 755 /home/pop
  注: /home/pop 为pop 系统用户的工作目录,该目录将用来存放邮件用户数据库和用户的所有邮件

# su - pop
$ echo "test::test.box:::test@test.com::::" >> POP
  # POP为邮箱的数据库文件,贮存全部的邮箱信息。此操作为增加一个用户test,其电子邮件地址为:test@test.com。test.box 为该用户邮箱文件名

$ /usr/local/etc/mh/popwrd test # 为test 邮件用户设置口令
New passWord:
Retype new password:
$ exit
# /usr/local/etc/mh/popaka >> /etc/mail/aliases
# chmod g-w /etc/mail/aliases
# newaliases
# /usr/lib/sendmail -bd -q30m #启动sendmail 服务进程
# /usr/local/lib/mh/popd #启动pop服务进程
   以下可使用Microsoft Outlookup ExPRess等工具对test@test.com 邮箱进行收发邮件测试,以上对这一能使邮件用户和操作系统用户区分开的方法进行了简单的介绍,关于这种组合方法,在使用时还有很多的技术细节,可参考软件包的有关文档资料,进行参数的优化。

,