2024年4月2日发(作者:)
实验一、SMTP服务器的安装与配置
1.实验目的
通过对Sendmail服务器系统的安装与配置实验,加深对 SMTP协议的理解,
掌握Sendmail邮件服务器的安装与配置方法,为将来从事网络工程建设打下基
础。
2.实验要求
下载Sendmail服务器源代码,在Linux 环境下,编译生成执行代码,并进
行安装和配置,然后创建二个测试帐号,分别在本机和网络中其它计算机上使用
测试帐号发送邮件,测试Sendmail服务器系统工作是否正常。
3.实验步骤
3.1 实验准备
1、系统要求
系统配置
建议CPU 为PIII 900MHZ以上, 内存128MB以上,磁盘可用空间100MB以上,
具有10M/100M网卡,操作系统采用 Red Hat 6.0 版本或更高版本。
编译器环境
系统必须装有ANSI-C编译器,推荐使用来自Free Software Foundation (FSF)
的GNU C compiler (GCC)。
2、下载源代码
Sendmail最新版本的源代码可以从或其镜像站
点下载,本书附带的光盘上包括了 sendmail 8.13.0版本的原代码。
3、源代码解包
将下载的安装包复制到某一个用户目录下(下面
以/usr/src/目录为例介绍),然后用以下命令解压:
$ cd /usr/src
$ tar xvfz
将会在/usr/src/目录下创建/sendmail-8.13.0子目录,该目录下包含
sendmail的所有的源代码和相关文档。
3.2 安装设置
首先用超级用户在/etc下创建mail目录(如果原来安装过sendmail,则可
先把原来的mail目录备份:# mv mail ):
# cd /etc
# mkdir mail
进入安装包所在目录:
# cd /usr/src/sendmail-8.13.0
# cd cf/cf
编辑 文件,在该文件中间增加以下三行,将避免在发送
邮件时对发送地址和接收地址进行DNS解析:
FEATURE (accept_unresolvable_domains)
FEATURE (nocanonify)
define( ‘confDONT_PROBE_INTERFACES' )
选择与安装机器上操作系统(这里选LINUX)相同的配置文件:
# cp
生成配置文件, ,并复制到安装目录/etc/mail:
# make install-cf
3. 3 编译
# cd /usr/src/sendmail-8.13.0
# make
3. 4 安装
把编译后的执行文件sendmail 复制到/usr/sbin/, 把配置文件
,,statistics,helpfile 等拷贝到目录/etc/mail
# make install
安装完成后,可以清除编译生成的中间文件(.o),以释放磁盘空间:
$ make clean
3. 5 配置
Sendmail 的配置文件放在/etc/mail/中, 配置文件比较复杂,
不过一般只需要修改几个地方就可以了,其他选项都使用默认设置。
编辑 文件,查找Cw选项, 在原来的Cw localhost之后加上
Sendmail服务器主机名如 :
Cwlocalhost
上述工作也可通过编辑/etc/mail/ 目录中文件名为 local-host-names 的
文件来完成:
# vi local-host-names
localhost
另外还需要修改AliasFile选项,让其指向/etc/ aliases的别名库:
AliasFile=/etc/aliases
如果希望限制每个收发的邮件大小,如允许收发1MB 的邮件,可以修改选项:
O MaxMessageSize=1000000
3.6 用户管理
在Linux中添加一个操作系统用户就会有一个电子邮件帐户,不需要特别设
置,可以通过该用户和密码用Sendmail发送邮件。
# useradd abc
# useradd xyz
3. 7 运行与停止
# cd /usr/sbin
# ./sendmail -bd -q30m
其中,-bd 表示以 daemon 方式运行,q30m 表示每隔30分钟处理邮件队列,
可运行man sendmail 查看所有选项。
Sendmail 运行时的日志文件放在 /var/log/maillog中, 启动后可通过以
下命令来跟踪查看,以发现问题:
# tail -f /var/log/maillog &
如果日志不详细,可修改 中的LogLevel选项, 值越大越详细:
O LogLevel=9
Sendmail将收到的邮件保存在目录/var/spool/mail/中, 每个用户一个文
件,例如,/var/spool/mail/abc中保存用户abc的邮件(如有的话)。
通过以下命令可以把sendmail进程的停下来(如果有的话):
# ps -A|grep sendmail
# kill -9 processID
4.实验评测
Sendmail 正常运行后, 可以通过运行以下命令进行测试(假设邮件服务器的
IP地址为192.168.25.188),其中‘’表示人输入的命令, ‘’表示sendmail
返回的信息:
# telnet 192.168.25.188 25 //25为SMTP服务端口
Trying 192.168.
Connected to (192.168.25.188).
Escape character is '^]'.
220 omain ESMTP Sendmail 8.13.0/8.13.0; Mon, 30 Aug
2004 16:22:19 +0800
help
214-2.0.0 This is sendmail version 8.13.0
214-2.0.0 Topics:
214-2.0.0 HELO EHLO MAIL RCPT DATA
214-2.0.0 RSET NOOP QUIT HELP VRFY
214-2.0.0 EXPN VERB ETRN DSN AUTH
214-2.0.0 STARTTLS
helo
mail from:abc@
rcpt to:xyz@
data
1234567890abcedfg
.
Message accepted for delivery
quit
通过上述命令,将以 abc@ 的身份向 xyz@(在该服务器上
必须存在xyz这个用户) 发一份内容为1234567890abcedfg 的邮件。
如果上述操作能正确完成,则表明 sendmail 服务器能正常工作, 可以通过
outlook等客户端程序发送邮件了。
下表是SMTP协议的命令:
命令 简要描述
HELO 用于标示邮件中"Received:" 信息的头部
MAIL FROM: 用于标示邮件发送者的邮件地址
注
RCPT TO: 用于标示邮件接收者的邮件地址
意,
DATA 用于表示邮件正文的开始
在
. 必须单独一行出现,表示邮件正文结束
Sen
QUIT 结束本次发送过程
dma
il 的发行包中是没有包含POP3 协议程序的, 如果您需要pop3来接收信件,需
要安装POP3 邮件接收系统, 如Qpoper, IPOP等,详见实验二POP3收邮件系统
的安装与配置。


发布评论