📄 电子邮件概述.htm
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0048)http://www.linuxforum.net/books/jy/G.929104025.A -->
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=gb2312">
<META content="MSHTML 6.00.2800.1106" name=GENERATOR></HEAD>
<BODY><PRE>发信人: albin (阿乐斌), 信区: LINUX
标 题: LINUX选修课讲义:电子邮件概述
发信站: 碧海青天 (Fri Jun 11 21:28:45 1999), 转信
版权声明:
本文内容为大连理工大学LINUX选修课讲义,欢迎大家转载,但禁止使用本材料进行
任何商业性或赢利性活动。转载时请保留本版权声明。
作者:何斌武,hbwork@dlut.edu.cn,大连理工大学网络中心,April 1999.
URL: ftp://ftp.dlut.edu.cn/pub/PEOPLE/albin/
------------------------------------------------------------------------------
感谢我的导师钱飞教授(http://come.or.jp/~fei/)多年来对大工校园网建设的无私帮
助及对我的热心指导,在他的帮助下,大工校园网建设取得了一定的成绩,我也从他那学
到了很多,不仅是专业方面的知识,更多的是如何待人,如何作人。
--------------------------------------------------------------------------------
电子邮件管理
电子邮件是系统管理中最复杂的一项任务,但也是最为重要的一项任务,因为用户使用
较多,作何一个改动都会对所有用户带来影响。同时大多数用户认为电子邮件是UNIX中最有
价值的服务,尤其是在与Internet相连的系统上,电子邮件更为重要。
本文主要介绍如下内容:电子邮件是如何工作的,电子邮件相关术语,从何处得到更多
的信息,最后给出配置sendmail的实例。
本文不介绍过于复杂的邮件配置如多协议MAIL HUB(将邮件从Internet上转发给UUCP或
DecNET)等。
一、电子邮件概述
1. Email环境的关键 -- sendmail
说明:
本部分内容摘自我的导师钱飞教授大规模计算机网络主要服务之管理方法中之电子邮件
环境的生成方法。
用户在实际利用Email时, 所要用到的命令一般为mail命令,或一些其他专用命 令.这些
直接与用户有关的,用于收发Mail的命令,或程序一般统称为MUA(Mail User Agent).通
常,MUA的使用程序有恨多.例如,MH,MNEWS,ELM等等.
相对于此,将来自MUA的信件转发给指定的用户的程序一般被称之为 MTA (Mail
Transfer Agent). 在UNIX系统上,最著名的MTA既是sendamil程序.sendmail是美国 加
州大学勃克利分校以Allman先生为中心的研究组所开发研制的优秀无偿软件.
sendmail(/usr/lib/sendmail)从各种MUA程序接收信件后, 按照自身的控制格 式文件
(/etc/sendmail.cf)中所描述的规则向外界转发信件. 因此,Email环境的成 败将取决
于sendmail.cf的设定是否合适.
MUA MTA
+---------------+
| /bin/mail |--->|
+---------------+ |
+---------------+ s +----------------------+
| /usr/ucb/mail |--->e ---->| /var/spool/mail/$usr |
+---------------+ n +----------------------
+---------------+ d +----------------------+
| MH |--->m ---->| /usr/bin/uux |
+---------------+ a +----------------------+
+---------------+ i +----------------------+
| mnews |--->l ---->| workstation |
+---------------+ | smtp +----------------------+
+---------------+ |
| elm |--->|
+---------------+
(图1. Email系统的基本结构)
图1中给出了Email系统的基本结构图. Email系统看上去非常简单,实际上却非 常复杂.
首先,用户需要利用mail等MUA程序编辑并发出信件. mail命令将为用户所编辑 的信件
追加一些相应的信息(mail head,称之为信件头),然后将该信件转交给sendm ail程序处
理.sendmail对信件头进行解析,调查该信件之转发方法及信件接收地址.
如果信件接收地址为本地计算机之用户地址,则将该信件追加到/var/spool/ma il目录
下之相应用户(与用户名同名)文件中. 如果件接收地址为UUCP线路之另一侧 之用户地
址,则起动/usr/bin/uux经由UUCP转发信件. 如果线路为TCP/IP线路,则利 用SMTP协议
与sendmail进行通信转发信件.
2. Email环境的设计
在设计Email环境时,一般应遵循以下规则.
(1)Email服务器的集中
在多机网络环境中应注意Email环境的统一配置,同一组织内的Email服务器不宜 过多.
否则,将增加管理负荷.
(2)共享信件缓冲池时,需要考虑资源竞争问题
在小规模网络中,为了实现Email之共享环境, 管理人员一般利用NFS将各台UNIX 工作站
之信件缓冲池(/var/spool/mail)mount到Email服务器上.这时,需要注意 的是,信件系
统是一种典型的分布处理环境, 对于共享文件如果文件自琐(lock) 问题处理不够得当,
有时将会引起重大事故(轻则丢失信件,重则损坏整个硬盘系 统).
(3)统一信件代码
在传统的UUCP中继网络上,网络上各个主要Email中继站上一般采用"7位通"(7位 代码)
之传递方式. 因此,要透过广域网传递多字节文字(中日文等)信件时,必须 进行适当的
代码转换.在日本,网络上的省缺规定为7位JIS代码. 这就是说,用户 利用MUA发送信件
时,必须将信件文本转换成JIS代码文本,或利用专用JIS代码视 窗,或编辑器来直接编辑
JIS码文件.
近年来,随着广域网技术之发展,sendmail(V8)等MTA之改进,在点对点(point to point)
之TCP/IP线路上已经可以实现直接"8位通"之信件传递. 笔者在日常工作 中也常常与中
国国内网友直接交换GB代码信件.但是,需要注意的是,在一些站点 上,由于MTA版本过于
陈旧, 经由这些站点转发的8位码会被自动过滤成7位码(丢 掉高位码),造成乱码.因此,
这时,有必要确认接收侧之MTA版本.可以相信在不远 的将来,广域网上之工作站都将陆
续切换成新的MTA(sendmail V8以上).
(4)不断更新sendmail版本
sendmail作为无偿软件尚在不断地进行着本本更新,以排除安全性问题.众所周 知,利用
sendmail所存在着的一些漏洞来进行网络非法侵入的hacking活动仍很盛行. 为了保护
您的系统避免外侵,建议各个网络管理者跟踪sendmail之版本,尽可能地采 用最新版.目
前的最新版本为sendmail.8.9.3.tar.gz.
(5)确定自己的邮件地址表现
各入网单位必须采用INTERNIC所指定的正式域名. 然后根据自己所在域来确定 邮件地
址形式.
(6)确定线路类型
电子邮件系统的虚拟配信线路大致有以下4种.
a.机内直接配信
本地邮件传送方式.本地计算机内的用户向本地其他用户传递信件.
b.UUCP线路配信
经由UUCP线路向其他计算机上的用户传递信件.
c.SMTP配信
利用SMTP协议经由TCP/IP线路向其他计算机上的用户传递信件.
d.域名服务器下SMTP配信
发送信件时用域名服务器来查寻收方地址,利用域名服务器所提示的MX记录 来确定
接收侧地址, 然后用SMTP(或ESMTP)协议经由TCP/IP线路向其他计算 机上的用户传
递信件.
二、电子邮件系统相关术语
电子邮件是从MUA(Mail User Agent)如mailx/Netscape Mail/Eudora开始的,在写
完信件之后MUA把信件转发给邮件路由如sendmail, 邮件路由然后将信息发送给MTA(Mail
Trasfer Agent);然后此信件通过多个主机或网络到达最终的投递代理,由投递代理将
邮件信息追加到接收者的邮箱文件中。
MUA:邮件阅读或发送程序,如SVR4 mailx,elm, pine, 在邮件系统中用户只于MUA
打交道,MUA将邮件系统的复杂性与用户隔离开。
Mail Router: 程序,从用户处接收邮件并决定其目的地址以及如何到达目的地。
比如根据接收者的地址不同,电子邮件可能通过TCP/IP网络发送,或者通过
UUCP或FAX发送。邮件路由使用接收者地址及其内部的配置信息来选择一个最
好的MTA,然后将邮信件转给此MTA。
MTA(Mail Transport agent): 一个专用程序,其作用类似于邮局,用于在两个机器
之间发送邮件。通常,一个机器上只有一个MTA。sendmail程序就是一个MTA,此
外还有其他MTA,如MMDF,Smail 3.x, qmail以及zmailer等。
MTA能够理解特定网络的EMAIL协议并通过网络传输信件,如UUCP可通过UUCP连接
发送信件,但无法处理SMTP信件。
Delivery Agent(投递代理):sendmail自己并不完成最终的邮件发送,它要调作其他
的程序来完成最后的投递服务。在SVR4系统中一般是/bin/mail.
实际情况是MTA,MUA以及Mail Router之间的区别往往比较模糊,如sendmail是一个
主要的Mail Router, 但同时又可以作为MTA,因为sendmail含有SMTP功能,可以在TCP/IP
网络上传送邮件,而在邮件接收端同样也是由sendmail来完成最终邮件发送之前的准备工
作;此外一些MUA自带一定的邮件路由功能,如Netscape Mail可以进行SMTP对话, 因此可
以实现对SMTP电子邮件的发送。
1、不同的MUA
mail: 用户邮件目录 /var/spool/mail/$USER, 变量: $MAIL
用户转发文件 $HOME/.forward
elm: 菜单驱动
pine: 字符界面的全屏幕操作MUA,应用较为广泛,功能较elm强大。
Netscape Mail
Microsoft Outlook Express
2. 背景资料及其它相关资源
RFC 821 STMP
RFC 822 EMAIL格式规范
RFC 1425 ESMTP
RFC 1123 对主机的要求及对前面的RFC的一些修改
sendmail文档
SIOG: Sendmail Installation and Operation Guide
建议仔细阅读,重要指南
Sendmail: An Internet Mail Router
Mail System and Address in 4.2BSD
以上文档sendmail源代码包中自带,由sendmail作者Eric Allmen编写。
Sendmail, Second Edition, O'Reilly
By Bryan Costales with Eric Allman
UNIX Unleashed, System Administrator Edition,
Chapter 24: Mail Administratin
http://www.sendmail.org/
Sendmail FAQ
3. Internet的邮件协议
为了解sendmail所完成的不同工作,需要了解一些Internet协议,协议是软件及硬件
进行通讯时所要遵守的标准.
一般来说协议是分层的,上一层协议使用底层协议作为基础,如ip协议不需要进行
端到端的连接即可以进行数据传送,而smtp或其他高层协议则要进行端到端的连接,
tcp建立在ip层之上,向telnet及smtp等提供面向连接的服务.总的来说,TCP/IP提供
Internet上的基本网络服务,ftp/smtp各种应用层协议则是建立在TCP/IP基础上的.分
层带来的好处是诸如smtp/ftp高层应用程序无需处理数据包的传输与其他主机的连接
等底层任务,它们只需使用TCP/IP所提供的相应服务.
smtp定义如何在Internet上交换email信息,对于smtp来说,只要两端的程序(smtp
Server)能够正常完成SMTP功能,就可以进行邮件交换,而不论服务器的软硬件环境是否
相同.
sendmail完成smtp任务示例:
[hbwork@helius mirror]$ /usr/sbin/sendmail -v hbwork@dlut.edu.cn <
../.pinerc
hbwork@dlut.edu.cn... Connecting to gingko.dlut.edu.cn. via esmtp...
220 gingko.dlut.edu.cn ESMTP Sendmail 8.9.3/8.9.3; Thu, 10 Jun 1999
10:34:48 +09
00 (CDT)
>>> EHLO helius.dlut.edu.cn
250-gingko.dlut.edu.cn Hello helius.dlut.edu.cn [202.118.66.81], pleased
to meet
you
250-EXPN
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -