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收邮件系统

的安装与配置。