⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 0380sendmail.htm

📁 鸟哥LINUX 学习课本
💻 HTM
📖 第 1 页 / 共 5 页
字号:
<hr width="100%"><a name="theory"></a><font color="#000099"><font size="+1">邮件服务器运作原理</font>:</font><blockquote>既然要使用 e-mail ,当然就需要邮件主机服务器啰 ( Mail Server)!不然你的信要怎样寄出去呢?事实上,mail server 的原理说难不难,但是说简单吗~似乎又有点难以理解ㄋㄟ~,所以,底下我们要来谈一谈他的原理部分,然后再针对主机的设定来进行说明咯!底下,我们首先要讲的,就是『<b><font color="#000099">Mailserver 系统与 DNS 系统有什么关连性?</font></b>』这个部分新手最容易被搞混哩,<b><font color="#000099">是否要架设mail server 就『宿命』的一定得架设 DNS 主机在你的主机上面吗</font></b>?</blockquote><blockquote><hr width="100%"><a name="theory_mailanddns"></a><font size="+1" color="#000099">Mail与 DNS 系统的相关性:</font></blockquote><blockquote><font face="SimSun">一直以来,Mail server 与 DNS 系统就是分不开的,怎么说呢?今天如果你要寄电子邮件的话,那么就得藉由邮件主机帮你将信件送出去,对吧!那么我们在<a href="http://linux.vbird.org/linux_server/0350dns.php">DNS</a>那个篇幅里面也谈到了相当多的概念了,就是,人脑实在无法记忆住计算机网络的IP 数据,因此,才会有所谓的 Domain Name System, DNS 主机,这个 DNS 主要的功能之一,就是将主机名称转译成为IP ,我想,这里您应该也已经了解了,对吧!如果是『不了解』,那么不要往下看了,请前往<a href="http://linux.vbird.org/linux_server/0350dns.php">简易DNS 服务器</a> 去瞧一瞧,瞧完了再回来继续吧!OK!好了,既然如此的话,那么使用邮件主机来寄信,并且不想要背主机所在的IP ,那蛣M就一定需要让你的主机名称可以经由 DNS 系统来找到你的 IP 啰!对吧!没错,如果你真的要提供一个Internet 上面的邮件主机,最好还是注册一个<a href="http://linux.vbird.org/linux_server/0270dynamic_dns.php">合法的主机名称</a>,比较好记忆ㄋㄟ~</font></blockquote><blockquote><font face="SimSun">好了,接下来要讨论的就是,<b><font color="#000099">既然我的主机需要DNS 来转译主机名称使成为 IP ,那么我真的就得必须要架设 DNS 吗?当然不是</font></b>!要注意的是,我们刚刚提到的是『<font color="#000099">我就得在Internet 上面注册一个合法的主机名称来对应 IP</font> 』而不是『<font color="#000099">一定得要架设DNS 在我的主机上面!</font>』这个很重要,因为有太多的新手被 mail server与 DNS server 的关系搞错乱了!如果到这里又混乱了!那么请,真的,一定,回到<a href="http://linux.vbird.org/linux_server/0350dns.php">DNS 服务器</a>那篇去慢慢的再从头读一次,否则.....也就是说,我们需要的是『<b><font color="#000099">合法注册过的主机名称</font></b>』就是了!所以,你可以使用动态IP 去申请一个动态 IP 的领域名称,也可以使用各大 ISP 提供的各项功能来注册,反正只要能够注册一个领域名称就是了!当然,你也可以自行去注册一个DNS 主机,并且在你的主机上面建立 DNS 系统,但这并非是必要的!</font></blockquote><blockquote><font face="SimSun">那么,假设我的主机名称对应 IP 已经成功的在Internet 上面完成合法注册了,这样就好了吗?是这样没错啦!确实,只要有主机名称对应到IP ,亦即是有 A ( Address ) 这个 DNS 的标志后,那么就可以架设 mail server了,并且,一般来说,应该不会有问题的!然而, DNS 系统本身还有其它的功能可以支持mail server ,使 mail server 更稳定与具有更佳的避免信件遗失功能,所以,就有MX 这个 DNS 的标志产生啦!MX 这个 DNS 设定中的标志,主要就是要给 mail server用的,基本上, MX 就是 Mail eXchanger 的缩写,他可以让 Internet 上面的信件马上找寻到Mail 主机的位置,此外,由于 MX 后面可以接数字,因次,一个 domain 或者是一部主机,可以有多个MX 标志,这有什么好处呢?主要的好处就是可以让,当主要的 mail server 挂点时,由于有mx 标号,因此,信件不会直接退回,而是跑到下一个 MX 设定的主机去,并且暂存在该处,等到主要的mail server 起来之后,这个 MX 设定的主机就会将信件给他传送到目的地!如此一来,甚至可以达到异地备援的功效呢!不只如此喔!MX的功效还很多!最大的优点就是有点类似 router 的功能,我们或许可以称之为<b><font color="#000066">邮件路由</font></b>吧!当有了 MX 标志之后,由于这是 DNS 的设定,所以当你要传送 mail 的时候,那么就可以直接依据DNS 的 MX 标志直接将信件传送到该设定的 mx 邮件主机,而不需要去寻问到底邮件要寄到哪里去!这功能相当的不错的!因为可以让你的邮件很快的而且正确的送达到目的地呢!此外,由于可以设定多个mx ,因此,假设『此路不通』,也就是先使用的 mx 邮件主机不通的时候,那么信件就会往下一个mx 邮件主机传送!这样可以避免信件被退信的机会!当然就更加的稳定啰!不过,这里也要特别强调,<font color="#000066">MX『一定』要设定正确,否则,呵呵!反而会让你的信件永远在 Internet 上面流浪呢</font>!</font></blockquote><blockquote><font face="SimSun">一般来说,邮件地址的写法为: <font color="#000066">account@server.name</font>的写法,在小老鼠 ( @ ) 前面的指的是『账号』,至于 @ 后面的则是主机的名称!当你寄出这样的一封信时,首先,你的邮件主机会先去DNS 系统寻找 server.name 这个主机名称对应的 IP 与 MX 标志,若有 mx 标志,那么这封e-mail 将会把信先送到该 mx 主机,然后再由该 mx 主机将信件送达目的地 ( 就是server.name 这个主机啦 ) ,而如果有多个 mx 标志时,那么这封 e-mail 会送到最优先的mx 主机去(也有可能这部主机就是目的地主机喔!),然后交给该主机来处理啰!而如果没有mx 标志的话,那么在查得 IP 之后,信件才会慢慢的送达该邮件主机啰!在送达到邮件主机后,该主机则以前面的『账号』将信件发送到各个使用者的邮件目录下!所以啰,为什么说mail 与 DNS 系统相关性很高呢?嘿嘿!由上面的说明您应该就不难了解啦! ^_^</font></blockquote><blockquote><hr width="100%"><a name="theory_mailtrans"></a><font size="+1" color="#000099">邮件的传送流程、MUA、MTA、MDA</font></blockquote><blockquote>约略了解了 DNS 与 mail server 之间的关系之后,在接下来我们要了解的是,那么mail 到底是如何传送到目的邮件主机的呢?底下我们分成『寄信』与『收信』两个主要的邮件主机使用方式来加以介绍啰!先说明一下关于『寄信』的部分好了,通常我们都是使用桌上型计算机来寄信的,举个例子来说好了,如果你以Netscape 或者 Kmail 或者 OutLook Express 来寄信的时候,那么那封信到底是怎么送出去的呢?可以参考一下底下的图示来说明:<br> <center><a name="fig_01"></a><img src="0380sendmail_files/0380sendmail-1.jpg" nosave="" height="338" width="476"><br>图一、电子邮件以邮件主机寄送信件示意图</center> <br>先来说明一下什么是 MUA, MTA 与 MDA 什么的,再来说信件怎么传送的好了!<ul><li><font color="#000099">MUA ( Mail User Agent )</font>:顾名思义, MUA 就是『邮件使用者代理人』,华特(what)?邮件还需要代理人,怎么回事呢?喔!这是由于通常我们Client 端的计算机都无法直接寄信的(不然干嘛要邮件主机?),所以,需要透过 MUA来帮我们传达信件,不论是送信还是收信,Client 端的用户都需要透过各个操作系统提供的MUA 才能够使用邮件系统。举个例子来说, Windows 里面的 OutLook Express,Netscape 里面的 mail 功能与 KDE 里面的 Kmail 都是 MUA 啦! MUA 主要的功能就是收受邮件主机的电子邮件,以及提供使用者浏览与编写邮件的功能!</li></ul><ul><li><font color="#000099">MTA ( Mail Transfer Agent )</font> : MUA 是用在Client 端上面的软件,那么这个 MTA 就是用在邮件主机上面的软件啦!他也是主要的邮件服务器喔!这个MTA 就是『邮件传送代理人』的意思。也来顾名思义一下,既然是『传送代理人』,那么使用者寄出的信,与使用者要收信时,就是找他( MTA ) 就对啦!因为他要负责帮我们使用者传送嘛!没错!基本上, MTA 的功能有这些:</li><br> <ol><li><font color="#000066">收受外部主机寄来的信件</font>:既然是邮件主机,那么『接收信件』想必就是主要的功能啰!呵呵,答对了!所以啰,MTA 最主要的功能就是收受外部来的信件,只要这个信件里面有 MTA 内部的账号时,那么这封信就会被MTA 收下来;</li><li><font color="#000066">帮使用者传送 ( 寄出 ) 信件</font>:既然可以收信,那么自然也就可以发信啰!没错啦!<font color="#000066">只要使用者具有合法的使用MTA 的权力,那么该使用者就可以利用这部 MTA 将他把信传送出去!</font>不过需要注意的是,MTA 会将信件送给目的地的 MTA 而不是目的地的 MUA 喔!不要搞错了!(<i><font color="#000066">注:曾经有个朋友跟我说,要我传数据给他,而因为他要接收我的信件,所以他的计算机"指的是 Windows 那个 Client 端的计算机" 得一直开着,真是不方便!听到这句话时,害我吓了一跳~这个观念是不对的~因为使用者使用的是MUA ,而信件『仅会送达到 MTA 主机上面』而已,收、发信件时,都需要透过 MTA来帮忙处理的!所以,使用者在使用邮件编辑器"MUA"将数据编辑完毕之后,按下送出,并且成功的送到MTA 之后,接下来的事情就是 MTA 的工作了,跟使用者的 Client 端这部计算机 "一点关系也没有了"</font></i>)</li><li><font color="#000066">让使用者自己的信可以收回去</font>:使用者可以将放置在邮件主机的信件收到自己的个人计算机上面收看。</li></ol> <br>大致的功能就是这些啦!通常我们所说的 Mail server ( 邮件服务器 ) 就是指MTA 而言的!</ul><ul><li><font color="#000099">MDA ( Mail Delivery Agent )</font> : 『邮件递送代理人』主要的功能就是将MTA 所收受的信件,依照信件的流向 ( 送到哪里去 ) 来将该信件放置到本机账户下的邮件档案中( Mailbox )!或者是再经由 MTA 将这个信件送到下个 MTA 去!而如果信件的流向是到本机当中时,这个邮件代理人的功能可不止是将由MTA 传来的邮件放置到每个使用者的 Mailbox 而已,他还可以具有邮件分析 ( filtering) 与其它相关的功能呢!这个功能很了不起喔!怎么说呢?具两个例子来说好了:</li><br> <ol><li>如果你知道某个广告信件的主旨都是固定的,例如『AV情色XXX』,你想将这种信件直接给他丢掉垃圾桶,可以吗?当然可以啰!透过MDA 邮件分析的功能,就可以将信件丢弃啦!</li><li>如果有一天你要出差去,看样子可能一个星期碰不到电子邮件了,但是你又不想让一些朋友认为你在耍大牌都不回信的....这个时候你就可以利用MDA 的功能,让邮件主机分析到,当要送给你这个使用者的账号的信出现时,就自动回复一封回信,让寄件者知道你在忙碌中....呵呵!这样的功能是否很不错呢?还不止这样喔!其它的等一下后面再提吧!</li></ol></ul><ul><li><font color="#000099">Mailbox</font> :『邮件信箱』说穿了,就是在你主机上面的一个目录下的,某个人『专用』的信件收受档案啦!举个例子来说,系统管理员root ,在预设的情况下,他会有个信箱,预设的档案是在 /var/spool/mail/root这个档案就是了,一个账号都会有一个自己的信箱喔!然后,当 MTA 收到 root的信时,就会将该封信件存到 /var/spool/mail/root 这个档案中啰!使用者可以透过程序来将这个档案里面的信件数据读取回去喔!</li></ul>好了,了解了 MUA, MTA 与 MDA 之后,再来说到那么如何将信寄出去呢?可以分为底下几个步骤:<ol><li><font color="#000099">Step 1 使用者利用 MUA 寄信到 MTA 上面</font>:通常我们使用MUA ( 例如 Outlook express ) 写信的时候,你总是要定义出几个咚咚:</li><ul><li>发信人与发信网站:对啦,总是要有这个信息才行的嘛!这个发信网站就是等一下Step 2 接收信件的那个 MTA 啦;</li><li>收信人与收信网站:是的,就是 account@e-mai.server 的样式啦!那个 account就是该 e-mail.server 里面的账号啦!</li></ul>好了,你在<a href="#fig_01">图一</a>左上角的那部机器上面,也就是『本地端用户使用计算机』利用MUA 的功能 ( 例如 Outlook express 好了 ) 写好了信之后,按下 MUA 的那个『传送』的按键,MUA就会依据你所定义的主机地址将信发送到 MTA 上面;<br> <li><font color="#000099">Step 2 MTA 收到自己的信件,交由 MDA 发送到该账号的MailBox 当中</font>:如果在 Step 1 所收到的信件中,那个 e-mail.server 就是MTA 自己,此时 MTA 会将该信件交由 MDA 去处理,将信件放置在收进者的信箱中;</li><br> <li><font color="#000099">Step 3 MTA 将信再转送出去</font>:如果由 Step 1 来的信件的收件人并不是MTA 的内部账号,那么该封信将会被再转送出去!由 Step 1 及 Step 3 的动作,我们也称为Relay (邮件转递) 的功能喔!</li><br> <li><font color="#000099">Step 4 远程 MTA 收受本地的 MTA 所发出的邮件</font>:远程的MTA 会收受我们这部 MTA 的信件,并将该信件交给他的 MDA 来处理 ( Step 5 ),此时,信件会存放在远程的 MTA 上面,等待使用者登录读取或者下载回去!</li></ol>整个流程大致上就是这样。这个时候,<b><font color="#000066">你由左上角的MUA 将信件寄出之后,最后信件将会存放在右边那部 MTA 主机里面喔</font></b>!<b><font color="#000066">还没有到达你的朋友的计算机( 就是右边的 MUA 那部计算机 )</font></b> !这个时候,就要继续谈到收信的动作了!收信的动作有点像这样:<br> 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -