一 、E-mail 概述
Internet最基本的服务,也是最重要的服务之一,就是电子邮件服务。据统计Internet上百分之三十以上的业务量是电子邮件,仅次于WWW服务。与传统的邮政信件服务类似,电子邮件可以用来在Internet或Intranet上进行信息的传递和交流,但电子邮件服务还具有快速、经济的特点。发一份电子邮件给远在他方的一位用户,通常来说,对方几分钟之内就能收到。如果选用传统邮件,发一封特快专递也需要至少一天的时间。而且电子邮件的费用最多只需几毛钱。与实时信息交流,如电话相比,因为电子邮件是采用存储转发的方式,发送邮件时,并不需要收件人处于在线状态,收件人可以根据实际需要随时上网从邮件服务器上收取邮件,方便了信息的交流。
1. E-mail系统的组成
一个完整的E-mail系统一般由三个部分组成,包括用户邮件代理、邮件服务器和邮件协议。
用户邮件代理(Mail User Agent,简称MUA)是用户与电子邮件系统的接口,负责用户和邮件服务器之间的交互工作。大多数情况下,MUA就是运行在客户端上的应用程序,其作用是将邮件发送到邮件服务器上和从邮件服务器上接收邮件。
邮件服务器是电子邮件系统的核心,其主要功能是发送和接收邮件,并向发件人告知邮件的传送情况。邮件服务器根据其功能,分为邮件传输服务器(SMTP服务器)和邮件接收服务器(POP3或IMAP4服务器)。
2. E-mail工作原理
E-mail的传输过程如下。
① 用户在各自的POP服务器注册登记,由网络管理员设置为授权用户,并取得一个POP信箱,获得POP和SMTP服务器的地址信息。假设两个服务器的域名分别为example.com和163.com,注册用户分别为liu和chen,E-mail地址分别为liu@example.com和chen@163.com。
② 当example.com服务器上的用户liu向chen@163.com发送E-mail时,E-mail首先从客户端被发送至example.com的SMTP服务器。
③ example.com的SMTP服务器根据目的E-mail地址查询163.com的SMTP服务器,并转发该E-mail。
④ 163.com的SMTP服务器收到转发的E-mail,并保存。
⑤ 163.com的chen用户利用客户端登录至163.com的POP服务器,从其信箱中下载并浏览E-mail。
3.
电子邮件协议
MIME(Multipurpose Internet Mail Extensions)多功能Internet 邮件扩充服务。 早期E-mail只能使用简单的ASCII文本进行消息传递,而现在人们可以通过E-mail发送各种各样的信息,包括照片、音频、应用程序等,正是MIME的出现,提供了这样的可能。MIME描述了如何设置信息格式,使得信息能够在不同的邮件系统内进行交换,MIME的格式灵活,允许邮件中包含任何类型的文件。
SMTP(Simple Mail Transfer Protocol,简单邮件传输协议)是一种提供可靠、高效的电子邮件传输协议。SMTP规定了如何在网络上的两台主机间可靠、高效地传送电子邮件,SMTP能够控制邮件信息的中转方式。
二、Sendmail 简介
Sendmail是历史最悠久的SMTP服务器,目前,几乎所有的Linux发行版中都安装了Sendmail。实际上,Sendmail几乎已成为Linux操作系统中电子邮件服务器的代名词。
wRed Hat Enterprise Linux 5中,默认情况下安装程序已经将Sendmail安装到系统中了。可以在终端执行以下命令,查看系统是否已经安装Sendmail软件包:
三、主流电子邮件服务器软件
1. 在Linux平台中,有许多邮件服务器可供选择,但目前使用较多的是Sendmail服务器、 Postfix服务器和Qmail服务器。
2. Sendmail是一个很优秀的邮件服务软件。几乎所有Linux的缺省配置中都内置了这个软件,只需要设置好操作系统,它就能立即运转起来。
3. Postfix是一个由IBM资助下由Wietse Venema 负责开发的一个自由软件工程产物,它的目的就是为用户提供除Sendmail之外的邮件服务器选择。
4. Qmail是有Dan Bernstein开发的可以自由下载邮件服务器软件,其第一个beta版本0.70.7发布于1996年1月24日,当前版本是2.3.3-2。
案例一:
拓扑图:
注意:假设每台电脑上一个账号!
一 、163.com 配置
1.修改主机名
[root@gjp99 ~]# vim /etc/sysconfig/network
[root@gjp99 ~]# cat /etc/sysconfig/network
NETWORKING=yes
NETWORKING_IPV6=yes
HOSTNAME=mail.163.com
2.把hosts 文件还原成默认值
[root@gjp99 ~]# cat /etc/hosts
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1 localhost.localdomain localhost
::1 localhost6.localdomain6 localhost6
3.安装dns服务器
挂载光盘—》安装三个文件 bind bind-chroot caching-nameserver
4.配置DNS服务器
[root@gjp99 etc]# ll
total 16
-rw-r--r-- 1 root root 405 Aug 2 21:30 localtime
-rw-r----- 1 root named 1230 Jul 30 2009 named.caching-nameserver.conf
-rw-r----- 1 root named 955 Jul 30 2009 named.rfc1912.zones
-rw-r----- 1 root named 113 Aug 3 14:03 rndc.key
[root@gjp99 etc]# pwd //注意当前路径
/var/named/chroot/etc
[root@gjp99 etc]# cp -p named.caching-nameserver.conf named.conf
注意:利用-p 或者 –a 把文件的属性也拷贝过来!
[root@gjp99 etc]# ll //注意这里的所属用户及所属组(不使用-p,就不同)
total 20
-rw-r--r-- 1 root root 405 Aug 2 21:30 localtime
-rw-r----- 1 root named 1230 Jul 30 2009 named.caching-nameserver.conf
-rw-r----- 1 root named 1230 Jul 30 2009 named.conf
-rw-r----- 1 root named 955 Jul 30 2009 named.rfc1912.zones
-rw-r----- 1 root named 113 Aug 3 14:03 rndc.key
[root@gjp99 etc]# vim named.conf
增加以下内容:
生成163.com.zone 区域文件:
5.服务重启并配置dns指向,及永久ip
6.主机名修改成功,需重启,才能生效!
init 6 //重启
重启后主机名mail.163.com生效!
7.配置主要文件 (已高亮显示)
[root@mail Server]# cd /etc/mail/
[root@mail mail]# ls
access domaintable.db mailertable sendmail.cf submit.mc virtusertable.db
access.db helpfile mailertable.db sendmail.mc trusted-users
domaintable local-host-names Makefile submit.cf virtusertable
由于sendmail.cf文件的格式难于理解,所以修改sendmail.mc文件.但是修改此文件需要一个软件包,
安装sendmail-cf-8.13.8-2.el5.i386.rpm
[root@mail Server]# rpm -qa |grep m4 //
查看该文件是否已安装
m4-1.4.5-3.el5.1 //该文件可以直接把mc格式的文件转换成cf格式
8.安装邮件接收服务器:(MAA)
[root@mail cdrom]# cd /mnt/cdrom/Server
[root@mail Server]# ll dove*
-r--r--r-- 264 root root 1736855 Nov 10 2012 dovecot-1.0.7-7.el5.i386.rpm
[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
error: Failed dependencies:
libmysqlclient.so.15 is needed by dovecot-1.0.7-7.el5.i386
libmysqlclient.so.15(libmysqlclient_15) is needed by dovecot-1.0.7-7.el5.i386
[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
error: Failed dependencies:
perl(DBI) is needed by mysql-5.0.77-3.el5.i386
[root@mail Server]# rpm -ql dovecot |less
/etc/dovecot.conf //
主配置文件
/etc/pam.d/dovecot //PAM
/etc/pki/dovecot //支持证书!
/etc/pki/dovecot/certs
[root@mail Server]# vim /etc/dovecot.conf
该行可有选择地使用!
10.
启动
sendmail
服务,查看其端口
[root@mail Server]# netstat -tupln |grep send
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 3824/sendmail: acce
注意:127.0.0.0.1只能在本地进行进行中继~
11.创建本地账号:
[root@mail mail]# useradd user1
[root@mail mail]# passwd user1
Changing password for user user1.
New UNIX password:
BAD PASSWORD: it is WAY too short
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
[root@mail mail]# useradd user2
[root@mail mail]# passwd user2
12.本地写封信测试:
普通测试:
[root@mail mail]# mail -s gjp user1
welcome!
.
Cc:
[root@mail mail]# su - user1
[user1@mail ~]$ mail
Mail version 8.1 6/6/93. Type ? for help.
"/var/spool/mail/user1": 2 messages 2 new
>N 1 root@mail.163.com Fri Nov 3 16:37 16/569 "gjp"
& 1
Message 1:
From root@mail.163.com Fri Nov 3 16:37:24 2012
Date: Fri, 3 Aug 2012 15:49:05 +0800
From: root <root@mail.163.com>
To: user1@mail.163.com
Subject: gjp
welcome!
& quit2
Saved 2 messages in mbox
[user1@mail ~]$ ll
total 4
-rw------- 1 user1 user1 1160 Aug 3 16:45 mbox
[user1@mail ~]$ cat mbox //存放已看过的信件
[user1@mail ~]$ pwd
/home/user1 //看过的信件在家目录下!
telnet 所监听的端口测试:
[root@mail Server]# telnet 127.0.0.1 25
Trying 127.0.0.1...
Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.
220 mail.163.com ESMTP Sendmail 8.13.8/8.13.8; Fri, 3 Nov 2012 16:52:39 +0800
helo 127.0.0.1 //问候
250 mail.163.com Hello localhost.localdomain [127.0.0.1], pleased to meet you
mail from :user1@163.com //发件人
250 2.1.0 user1@163.com... Sender ok
rcpt to :user2@163.com // 收件人
250 2.1.5 user2@163.com... Recipient ok
data 开始写信息
354 Enter mail, end with "." on a line by itself
subject nice to meet you ! // 标题
Welcome to here ! //内容
. // 点号结束
250 2.0.0 q738qdqg003907 Message accepted for delivery
quit //退出
221 2.0.0 mail.163.com closing connection
Connection closed by foreign host.
You have new mail in /var/spool/mail/root
13.疑难解答:
由于sendmail的监听的端口为127.0.0.1,只能在本地监听
问题一:
解决一:
[root@mail mail]# vim sendmail.mc
问题二
:
在本地都不能处理
(
如果
telnet 127.0.0.1 25
成功
)
解决二:
[root@mail mail]# vim access
[root@mail mail]# vim local-host-names
[root@mail mail]# cat local-host-names
# local-host-names - include all aliases for your machine here.
163.com
mail.163.com
服务重启:
[root@mail mail]# su - user1
[user1@mail ~]$ mail
Mail version 8.1 6/6/93. Type ? for help.
"/var/spool/mail/user1": 1 message 1 new
>N 1 user2@163.com Fri Aug 3 18:07 12/359
& 1
Message 1:
From user2@163.com Fri Aug 3 18:07:09 2012
Date: Fri, 3 Aug 2012 18:06:05 +0800
From: user2@163.com
subject ok
kkele
问题三、任何人都可以向我发邮件(不安全,可能是垃圾邮件)
用
windows
下的
outlook express
接收与发送邮件测试
:
发送邮件!
解析一下,看看dns是否存在问题:
解决三:需要认证: ip认证或账号认证!(下篇详细介绍)
转载于:https://blog.51cto.com/liufan0321/1061248