发信人: albin (阿乐斌), 信区: LINUX 标 题: LINUX选修课讲义:编译安装sendmail 发信站: 碧海青天 (Fri Jun 11 21:29:53 1999), 转信 版权声明: 本文内容为大连理工大学LINUX选修课讲义,欢迎大家转载,但禁止使用本材料进行 任何商业性或赢利性活动。转载时请保留本版权声明。 作者:何斌武,hbwork@dlut.edu.cn,大连理工大学网络中心,April 1999. URL: ftp://ftp.dlut.edu.cn/pub/PEOPLE/albin/ ------------------------------------------------------------------------------ 感谢我的导师钱飞教授(http://come.or.jp/~fei/)多年来对大工校园网建设的无私帮 助及对我的热心指导,在他的帮助下,大工校园网建设取得了一定的成绩,我也从他那学 到了很多,不仅是专业方面的知识,更多的是如何待人,如何作人。 -------------------------------------------------------------------------------- 电子邮件服务器sendmail的安装及配置 要学会如何设置sendmail,最简单的方法是使用个作好的示例文件,但因为sendmail能 够运行在很多版本的UNIX上,不同的操作系统其配置文件可能有所不同. 安装sendmail的每一步是安装相应的二进制软件包或取得源代码编译安装,下一步是 选择一个与自己系统及要求比较接近的模块进行必要的修改之后生成自己的配置文件,然 后你必须测试sendmail及其配置文件sendmail.cf,最后安装sendmail,sendmail.cf及其他 辅助文件. 上面只是一些基本步骤,根据sendmail安装位置的不同,你可能需要修改/etc/init.d (Debian Linux, Solaris 2.x)或/etc/rc.d/init.d(Redhat Linux)下有关sendmail的启 动文件,以确保系统启动时能正确执行sendmail. 引外,如果你的系统中没有别名文件,你 还需要建立一个别名文件,通过为/etc/mail/aliases或/etc/aliases(请参考sendmail 述中有关别名文件的介绍); 必要的情况下你还需要对系统的DNS进行修改. sendmail最新版本为8.9.3,建议将自己的邮件服务器升级为最新版本. 一. 安装sendmail 1. 在RedHat Linux上通过RPM包安装 如果你用的是RedHat 5.x或Mandrake-5.x,建议从FTP服务器或CD上取得如下RPM包: RedHat/RPMS/sendmail-8.9.3-10.i386.rpm sendmail可执行文件 RedHat/RPMS/sendmail-cf-8.9.3-10.i386.rpm sendmail.cf生成器 RedHat/RPMS/sendmail-doc-8.9.3-10.i386.rpm sendmail.cf文档 用rpm安装sendmail: rpm -ivh sendmail-8.9.3-10.i386.rpm 升级: rpm -Uvh sendmail-8.9.3-10.i386.rpm 2. 用源代码编译并安装 最新源代码: http://www.sendmail.org/ ftp://ftp.dlut.edu.cn/pub/unix/mail/sendmail/ . 展开源代码 cd $HOME tar -zxvf sendmail-8.9.3.tar.gz . 相关文档 ~sendmail-8.9.3/README 整体说明 ~sendmail-8.9.3/src/README 编译安装说明 ~sendmail-8.9.3/cf/README sendmail.cf生成器使用说明 ~sendmail-8.9.3/doc/* .编译 不要使用make,用sendmail自带的编译脚本程序Build $cd sendmail-8.9.3/src $./Build Build相关选项: -m 显示所用的Makefile -c clean -L* 设置LIBDIRS 一般情况下可顺利编译,也可用^C中断继续执行如下操作 $cd obj.* $vi Makefile 修改为MAPDEF = -DNEWDB -DNDBM, 去掉不必要的-DNIS等选项 如果未使用bind 4.9.x,在LIB中去掉-l44bsd的定义 $ make 或 $ cd .. $ ./build 安装: $su #./Build install 二. sendmail.cf文件的生成及测试 sendmail 8.x自带了sendmail.cf生成器,其所需文件在目录cf下,通常情况下可以 通过如下命令生成sendmail.cf. $ cd cf $ cp cf/generic-youros.mc local.mc $ vi local.mc 请参考文件README及后面的说明根据自己的需要修改local.mc, 参考目录cf下 面的文件作出自己的mc文件. $ m4 -D_CF_DIR_=./ m4/cf.m4 local.mc > sendmail.cf 示例local.mc文件内容如下(Solaris 2.x): divert(-1) # # Copyright (c) 1998 Sendmail, Inc. All rights reserved. # Copyright (c) 1983 Eric P. Allman. All rights reserved. # Copyright (c) 1988, 1993 # The Regents of the University of California. All rights reserved. # # By using this file, you agree to the terms and conditions set # forth in the LICENSE file which can be found at the top level of # the sendmail distribution. # # # # This is a generic configuration file for SunOS 5.x (a.k.a. Solaris 2.x) # It has support for local and SMTP mail only. If you want to # customize it, copy it to a name appropriate for your environment # and do the modifications there. # divert(0)dnl VERSIONID(`@(#)generic-solaris2.mc 8.8 (Berkeley) 5/19/1998') OSTYPE(solaris2)dnl DOMAIN(generic)dnl MASQUERADE_AS(dlut.edu.cn)dnl FEATURE(masquerade_envelope)dnl FEATURE(allmasquerade)dnl FEATURE(always_add_domain)dnl FEATURE(`access_db', `dbm -o /etc/mail/access') FEATURE(`local_procmail') MAILER(procmail)dnl # MAILER(local)dnl MAILER(smtp)dnl 2. 测试sendmail.cf文件 可以通过sendmail -bt -Csendmail.cf文件来测试生成的sendmail.cf,但因时间关系, 在此不作介绍. 最简单的方法是将此文件拷贝到/etc或/etc/mail目录下,建立相应的sendmail.cw ,relay-domain及别名文件, 然后通过与其他机器或网域进行邮件发送与接收来测试. -- ※ 来源:.碧海青天 bbs.dlut.edu.cn.[FROM: helius.dlut.edu.]