我们下面的操作是在Solaris2.6上, 用的编译器是GCC2.8.1。
一、获取Sendmail
最新的Sendmail V8 可以从 Sendmail Consortium 主页获取。北京大学匿名FTP上也有。目前最新版本是Sendmail8.9.3
二、解开Sendmail
安装Sendmail必须有超级用户(root)权限。取来的Sendmail通常是 .tar.gz 格式的包,你需用下面命令进行解包:
# gzip -cd sendmail.8.9.3.tar.gz | tar xvf -
解开的包放在sendmail-8.9.3下。
三、 编译并生成sendmail
你的系统上必须有C编译器或GNU的gcc编译器。你可以从北大FTP上获取Solaris2.5/2.6上的编译好的GCC包
在编译Sendmail之前, 我们还需要新的Berkeley DB包, Sendmail通过利用该数据库的功能, 才能有效的抵挡邮件攻击。最新的Berkeley DB可从http://www.sleepycat.com/获取。在北大FTP上你可获得目前最新的2.7.3版本。安装Berkeley DB的步骤如下:
a.解包:
# gzip -cd db.2.7.3.tar.gz| tar xvf -
# cd db-2.7.3
b.编译并安装
# cd dist
如果你是用gcc, 做下一步:
# vi configure
在 configure中加入一行:
CC=gcc
# ./configure
# make
# make install (需要超级用户权限)
缺省情况下, Berkeley DB被安装在 /usr/local/BerkeleyDB/ 目录下,你可以通过修改Makefile中的prefix参数来重新定义这个目录。该目录要记住, 下面编译Sendmail时要用到。现在我们回到Sendmail所在的目录:
# cd sendmail-8.9.3
再进到BuildTools/Site目录下,创建 site.config.m4
# cd BuildTools/Site
# vi site.config.m4
在site.config.m4 输入下面两行:
define(`confINCDIRS',`-I/usr/local/BerkeleyDB/include')
define(`confLIBDIRS',`-L/usr/local/BerkeleyDB/lib')
这是为了告诉Build到哪去找DB的头文件和库。再回到sendmail-8.9.3目录下,执行下面命令:
#cd ../../sendmail-8.9.3
#make
编译完后,你需要创建 /usr/share/man/cat1,cat5,cat8三个目录,再执行安装程序;否则会出错退出。
#make install (需要超级用户权限)
当你执行完以上命令后,系统将sendmail,mailq安装在目录/usr/lib/下, makemap 安装在 /usr/sbin/ 下,这是生成数据库映像的工具;smrsh安装在 /usr/lib下,这是sendmail专用的Shell。
下面我们要来生成Sendmail的配置文件 sendmail.cf。
四、生成sendmail.cf
Sendmail的配置文件是通过m4命令生成的。首先进入~/sendmail-8.9.3/cf/目录:
1.#cd ~/sendmail-8.9.3/cf
2.#cd cf
3.#cp generic-solaris2.mc sendmail.mc
4.编辑 sendmail.mc 如下:
diver(0)dnl
VERSIONID(`@(#)sendmail.mc 8.30')
OSTYPE(solaris2)dnl
DOMAIN(generic)dnl
define(`confCOPY_ERRORS_TO',`Postmaster’)dnl
define(`confPRIVACY_FLAGS’,``authwarnings,noexpn,novrfy'')dnl
FEATURE(relay_entire_domain)
FEATURE(virtusertable)dnl
FEATURE(access_db)dnl
FEATURE(blacklist_recipients)
FEATURE(rbl)
FEATURE(smrsh)
MAILER(local)dnl
MAILER(smtp)dnl
5. 生成 sendmail.cf:
# m4 ../m4/cf.m4 sendmail.mc > sendmail.cf
将 sendmail.cf拷贝到 /etc目录下。
Sendmail的配置文件就生成好了。
六、生成其他相关文件
在 /etc/mail下主要生成下面几个文件:sendmail.cw,aliases, access, relay-domains, 和 /etc/virtusertable(你可通过改sendmail.cf文件将virtusertalbe放到/etc/mail下。
1. Sendmail.cw中放置所有你希望该服务器接收的主机名。如果你希望域名做主机名,也可加入其中。比如,你在该文件中放 pku.edu.cn, 那么,该服务器接收地址为 user@pku.edu.cn邮件。
/etc/mail/virtusertable 文件的内容格式和/etc/mail/aliases基本一样,举例如下:
Kai.Wang@pku.edu.cn kaiw@mailserver
Jianw@pku.edu.cn jianw@csmailsvr
……
Virtusertable 也需要用makemap来生成它的数据库文件。命令如下:
# makemap hash virtusertable.db < virtusertable
八、测试sendmail
首先,启动sendmail后台进程:
# /usr/lib/sendmail -bd -q1h
# ps -ef|grep sendmail /* 查看进程是否运行。
然后,分别从本地和远地给服务器上的某一用户发邮件,看是否能收到。在 /var/log/syslog 文件中你可以看到Sendmail的日志信息。 你也可以通过下面命令对sendmail发送邮件进行跟踪:
#/usr/lib/sendmail -d -v user@host.domain
总之, Sendmail是一个较复杂的软件,这篇文章只是一些最基本的介绍。你可以从sendmail正式站点找到更多的信息。另外,我们将上面编译好的sendmail和相应的配置文件放在北大FTP上,需要的话可从这里下载。
自由广告区 |
分类导航 |
邮件新闻资讯: IT业界 | 邮件服务器 | 邮件趣闻 | 移动电邮 电子邮箱 | 反垃圾邮件|邮件客户端|网络安全 行业数据 | 邮件人物 | 网站公告 | 行业法规 网络技术: 邮件原理 | 网络协议 | 网络管理 | 传输介质 线路接入 | 路由接口 | 邮件存储 | 华为3Com CISCO技术 | 网络与服务器硬件 操作系统: Windows 9X | Linux&Uinx | Windows NT Windows Vista | FreeBSD | 其它操作系统 邮件服务器: 程序与开发 | Exchange | Qmail | Postfix Sendmail | MDaemon | Domino | Foxmail KerioMail | JavaMail | Winwebmail |James Merak&VisNetic | CMailServer | WinMail 金笛邮件系统 | 其它 | 反垃圾邮件: 综述| 客户端反垃圾邮件|服务器端反垃圾邮件 邮件客户端软件: Outlook | Foxmail | DreamMail| KooMail The bat | 雷鸟 | Eudora |Becky! |Pegasus IncrediMail |其它 电子邮箱: 个人邮箱 | 企业邮箱 |Gmail 移动电子邮件:服务器 | 客户端 | 技术前沿 邮件网络安全: 软件漏洞 | 安全知识 | 病毒公告 |防火墙 攻防技术 | 病毒查杀| ISA | 数字签名 邮件营销: Email营销 | 网络营销 | 营销技巧 |营销案例 邮件人才:招聘 | 职场 | 培训 | 指南 | 职场 解决方案: 邮件系统|反垃圾邮件 |安全 |移动电邮 |招标 产品评测: 邮件系统 |反垃圾邮件 |邮箱 |安全 |客户端 |