简介

电子邮件系统是目前Internet上通用的标准,由于具有完善的设计架构,因此可兼容来自不同平台、服务器或应用程序间的信息交换。它的主要优点有:快速:电子邮件寄出后,收件人能在短时间内得到这份邮件。经济:它不需要使用信封和信纸,也不需邮资。多样性:除了文本之外,电子邮件还可传送图片、声音、影像和其他类型的数据。

专有名词

邮件传输代理
邮件传输代理(Mail Transfer Agent,MTA)是一种在服务器端执行的软件,也就是邮件服务器,它可在服务器间传送电子邮件。一般而言,每个系统只有一个MTA保持在运行状态,而在UNIX系统中使用最为广泛的MTA程序有Sendmail、Postfix、Qmail与Fetchmail等。
邮件用户代理
邮件用户代理(Mail User Agent,MUA)是一种客户端软件,它可提供用户读信、回信、写信及处理邮件等功能,但和MTA不同的是,一个系统中可以同时存在多个MUA程序。一般常见的MUA程序包括Linux平台上的mail、mailx、elm和mh等,以及Windows操作系统中的Outlook Express或Netscape Messenger。
邮件传递代理
邮件传递代理(Mail Delivery Agent,MDA)通常与MTA一同运行,将MTA接收的邮件,按照目的位置做出判断,以决定将该邮件放在本机账户下的邮箱,或是再经过MTA将此邮件转发到下个MTA,而MDA一般都在后台执行。
如果此封邮件的目的地为本机用户邮箱,则MDA除了将邮件放在正确的邮箱外,同时还具有邮件过滤的功能。

邮件传递系统
由MTA和MUA组合而成的系统称为邮件传递系统(Mail Transfer System,MTS)

案例

实验拓扑图

clip_p_w_picpath002

实验目的:

有两台邮件服务器mail.163.com和mail.sina.com,使连接这两台邮件服务器的四台主机之间可以自由的发送接收邮件。

实验步骤

在163.com服务器上的配置

修改机器名

[root@localhost ~]# vim /etc/sysconfig/network

HOSTNAME=mail.163.com

1.安装dns服务器

[root@localhost ~]# mkdir /mnt/cdrom

[root@localhost ~]# mount /dev/cdrom /mnt/cdrom

mount: block device /dev/cdrom is write-protected, mounting read-only

[root@localhost ~]# cd /mnt/cdrom/Server

[root@localhost Server]# rpm -ivh bind-

bind-9.3.6-4.P1.el5.i386.rpm bind-libs-9.3.6-4.P1.el5.i386.rpm

bind-chroot-9.3.6-4.P1.el5.i386.rpm bind-sdb-9.3.6-4.P1.el5.i386.rpm

bind-devel-9.3.6-4.P1.el5.i386.rpm bind-utils-9.3.6-4.P1.el5.i386.rpm

bind-libbind-devel-9.3.6-4.P1.el5.i386.rpm

[root@localhost Server]# rpm -ivh bind-9.3.6-4.P1.el5.i386.rpm

warning: bind-9.3.6-4.P1.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186

Preparing... ########################################### [100%]

1:bind ########################################### [100%]

[root@localhost Server]# rpm -ivh bind-chroot-9.3.6-4.P1.el5.i386.rpm

warning: bind-chroot-9.3.6-4.P1.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186

Preparing... ########################################### [100%]

1:bind-chroot ########################################### [100%]

[root@localhost Server]#

[root@localhost Server]# rpm -ivh caching-nameserver-9.3.6-4.P1.el5.i386.rpm

warning: caching-nameserver-9.3.6-4.P1.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186

Preparing... ########################################### [100%]

1:caching-nameserver ########################################### [100%]

[root@localhost Server]#

[root@localhost Server]# cd /var/named/chroot/etc/

[root@localhost etc]# ll

总计 16

-rw-r--r-- 1 root root 405 08-20 21:25 localtime

-rw-r----- 1 root named 1230 2009-07-30 named.caching-nameserver.conf

-rw-r----- 1 root named 955 2009-07-30 named.rfc1912.zones

-rw-r----- 1 root named 113 08-20 21:53 rndc.key

[root@localhost etc]# cp -p named.caching-nameserver.conf named.conf

[root@localhost etc]# vim named.conf

clip_p_w_picpath004

[root@localhost etc]# vim named.rfc1912.zones

加入下列几行

21 zone "163.com" IN {

22 type master;

23 file "163.com.zone";

24 allow-update { none; };

25 };

生成163.com.zone文件

[root@localhost named]# cp -p localhost.zone 163.com.zone

[root@localhost named]# vim 163.com.zone

clip_p_w_picpath006

做dns指向

[root@localhost named]# vim /etc/resolv.conf

clip_p_w_picpath008

[root@mail ~]# service named restart

停止 named: [确定]

启动 named: [确定]

2.配置sendmail服务器

安装sendmail-cf-8.13.8-2.el5.i386.rpm

[root@mail Server]# rpm -ivh sendmail-cf-8.13.8-2.el5.i386.rpm

warning: sendmail-cf-8.13.8-2.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186

Preparing... ########################################### [100%]

1:sendmail-cf ########################################### [100%]

[root@mail Server]#

[root@mail ~]# cd /etc/mail

[root@mail mail]# ll

总计 244

-rw-r--r-- 1 root root 355 2006-11-28 access

-rw-r----- 1 root root 12288 2012-08-21 access.db

-rw-r--r-- 1 root root 0 2006-11-28 domaintable

-rw-r----- 1 root root 12288 2012-08-21 domaintable.db

-rw-r--r-- 1 root root 5521 2006-11-28 helpfile

-rw-r--r-- 1 root root 64 2006-11-28 local-host-names

-rw-r--r-- 1 root root 0 2006-11-28 mailertable

-rw-r----- 1 root root 12288 2012-08-21 mailertable.db

-rw-r--r-- 1 root root 1048 2006-11-28 Makefile

-rw-r--r-- 1 root root 58205 2012-08-21 sendmail.cf

-rw-r--r-- 1 root root 7209 2006-11-28 sendmail.mc

-r--r--r-- 1 root root 41286 2006-11-28 submit.cf

-rw-r--r-- 1 root root 940 2006-11-28 submit.mc

-rw-r--r-- 1 root root 127 2006-11-28 trusted-users

-rw-r--r-- 1 root root 0 2006-11-28 virtusertable

-rw-r----- 1 root root 12288 2012-08-21 virtusertable.db

修改默认监听端口默认监听地址

[root@mail mail]# vim sendmail.mc

clip_p_w_picpath010

[root@mail mail]# vim access 起到中继的作用 使起可以向不同的域发送邮件

clip_p_w_picpath012

[root@mail mail]# vim local-host-names 存放本地域

clip_p_w_picpath014

[root@mail ~]# service sendmail restart

3.安装dovecot邮件接收服务器

[root@mail Server]# rpm -ivh perl-DBI-1.52-2.el5.i386.rpm

warning: perl-DBI-1.52-2.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186

Preparing... ########################################### [100%]

1:perl-DBI ########################################### [100%]

[root@mail Server]# rpm -ivh mysql-5.0.77-3.el5.i386.rpm

warning: mysql-5.0.77-3.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186

Preparing... ########################################### [100%]

1:mysql ########################################### [100%]

[root@mail Server]# rpm -ivh dovecot-1.0.7-7.el5.i386.rpm

warning: dovecot-1.0.7-7.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186

Preparing... ########################################### [100%]

1:dovecot ########################################### [100%]

[root@mail Server]#

[root@mail Server]# service dovecot start

启动 Dovecot Imap: [确定]

[root@mail Server]#

两台服务器的配置基本上是一样的,对于sina.com的配置我们这里就不一一列出了。

4.测试

同一个域的两台主机进行邮件的发送接收

clip_p_w_picpath016

clip_p_w_picpath018

不同域的两台主机进行邮件的发送接收

clip_p_w_picpath020

clip_p_w_picpath022

在前面的过程中我们可以看出,任何帐号都可以进行邮件的发送和接受,为了是邮件服务器可以更好的运行,我们可以使用sasl来进行加密。

利用sasl进行身份验证

clip_p_w_picpath024

clip_p_w_picpath026

clip_p_w_picpath028

clip_p_w_picpath030

clip_p_w_picpath032

clip_p_w_picpath034

clip_p_w_picpath036

必须要进行身份验证,不然无法发送邮件

clip_p_w_picpath038

把字符转换为base64编码

帐号 口令

clip_p_w_picpath040

开始发信

clip_p_w_picpath042

clip_p_w_picpath044

接收信件成功

clip_p_w_picpath046