关于电子邮件的知识
POP3和SMTP是指什么?
许多朋友都在为邮箱的设置感到疑惑,特别是对于收信服务器和发信服务器的概念感到陌生,常常被人提到的SMTP和POP3是怎么回事呢?
其实一般每个提供电子邮件服务的网站都有自己的SMTP和POP服务器地址,在你登录你的电子邮件网站时仔细找找肯定能发现它们,如果找不到还可以查看一下网站的“帮助”, 如:sina免费邮箱发信(smtp)服务器的地址为:smtp.sina.com;邮箱收信(pop3)服务器的地址为:pop.sina.com. 如果你想详细的了解一下这其中的知识,就请看看下面的解释吧:
POP(Post Office Protocol)邮局
通讯
协定: POP是互联网上的一种通讯协定,主要功能是用在传送电子邮件,当我们寄信给另外一个人时,对方当时多半不会在线上,所以邮件服务器必须为收信者保存这封信,直到收信者来检查这封信件。当收信人收信的时候,必须通过POP通讯协定,才能取得邮件。
与POP同时出现的还有SMTP,它也是用来传送网络上的电子邮件,不同的是POP是负责邮件程序和邮件服务器收信的通讯协定,SMTP则是负责邮件服务器与邮件服务器之间的寄信的通讯协定。
POP3, 它规定怎样将个人计算机连接到Internet的邮件服务器和下载
电子
邮件的电子协议。它是因特网电子邮件的第一个离线协议标准,POP3允许用户从服务器上把邮件存储到本地主机(即自己的计算机)上,同时删除保存在邮件服务器上的邮件,而POP3服务器则是遵循POP3协议的接收邮件服务器,用来接收电子邮件的。
当然,只有提供了POP3服务的信箱才能直接利用E-mail软件收发电子邮件,否则我们只有进入它的主页,才能收发邮件,如:
微软
的Hotmail免费信箱等。
SMTP(Simple Mai Transfer Protocol)简易邮件传输通讯协议: SMTP是互联网上的一种通讯协议,主要功能是用在传送电子邮件,当我们通过电子邮件程序,寄E-mil给另外一个人时,必须通过SMTP通讯协议,将邮件送到对方的邮件服务器上,等到对方上网的时候,就可以收到你所寄的信。
其实简单的说,POP服务器是用来收信的,而且每个E_mail地址一般只有一个。如果你要同时收取多个邮箱的信件,就挨个设置每个邮箱的POP3服务器地址。至于SMTP服务器,可以理解为就是用来寄信的,而且大多数SMTP服务器也是免费的,也就是说,不管你有无E-mail信箱,只要想寄信,随便填上一个SMTP服务器,就可以寄信了。如果你用Outlook Express或者其它邮件程序发信,又同时拥有多个免费邮箱,不必设置多个SMTP服务器,只要选择一个填上就行了.
它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。SMTP协议属于TCP/IP协议族,它帮助每台计算机在发送或中转信件时找到下一个目的地。通过SMTP协议所指定的服务器,我们就可以把E-mail寄到收信人的服务器上了,整个过程只要几分钟。SMTP服务器则是遵循SMTP协议的发送邮件服务器,用来发送或中转你发出的电子邮件。
SMTP协议原理
SMTP, 它是基于TCP服务的应用层协议,由RFC0821所定义。SMPT协议规定的命令是以明文方式进行的。为了说明SMTP的工作原理,我们以向www.linuxaid.com.cn发送邮件为实例进行说明。
在windows下使用telnet程序,远程主机指定为www.linuxaid.com.cn,而端口号指定为25,然后连接www.linuxaid.com.cn; 在linux环境下,使用"telnet www.linuxaid.com.cn 25"连接www.linuxaid.com.cn的25号端口(SMTP的标准服务端口),交互过程如下:
[lix@ns lix]$ telnet www.linuxaid.com.cn 25
Trying 202.99.11.120
Connected to www.linuxaid.com.cn
Escape character is '^]'
HELO ideal
220 www.linuxaid.com.cn ESMTP Sendmail 8.10.2/8.10.2; Mon, 18 Sep 2000 250 www.linuxaid.com.cn Hello [210.12.114.130], pleased to meet you
MAIL FROM:ideal@btamail.net.cn
250 2.1.0 IDEAL@btamail.net.cn... Sender ok
RCPT TO:ideal@linuxaid.com.cn
250 2.1.5 ideal@linuxaid.com.cn... Recipient ok
DATA
354 Enter mail, end with "." on a line by itself
hello , Pls to get to meet u :) good luck
.
250 2.0.0 e8I5j1M11204 Message accepted for delivery
QUIT
221 2.0.0 www.linuxaid.com.cn closing connection
Connection closed by foreign host.
其中黑体部分是输入的命令,其他内容是对方邮件服务器输出的状态
信息
。
这里,HELO是客户向对方邮件服务器发出的标识自己的身份的命令,这里假设发送者为ideal;MAIL FROM命令用来表示发送者的邮件地址;RCPT TO:标识接收者的邮件地址,这里表示希望发送邮件给ideal@linuxaid.com.cn,如果邮件接收者不是本地用户,例如RCPT TO:ideal@btamail.net.cn,则说明希望对方邮件服务器为自己转发(Relay)邮件,若该机器允许转发这样的邮件,则表示该邮件服务器是OPEN RELAY的,否则说明该服务器不允许RELAY;DATA表示下面是邮件的数据部分,输入完毕以后,以一个"."开始的行作为数据部分的结束标识;QUIT表示退出这次会话,结束邮件发送。
这就是一个简单的发送邮件的会话过程,其实当使用outlook express等客户软件发送时,后台进行的交互也是这样的,当然,SMTP协议为了处理复杂的邮件发送情况如附件等等,定义了很多的命令及规定,具体可以通过阅读RFC821来获得。
当你的一个朋友向你发送邮件时,他的邮件服务器和你的邮件服务器通过SMTP协议通信,将邮件传递给你邮件地址所指示的邮件服务器上(这里假设你的本地邮件服务器是Linux系统),若你通过telnet协议直接登录到邮件服务器上,则可以使用mail等客户软件直接阅读邮件,但是若你希望使用本地的MUA(Mail User Agent,如outlook express等客户软件)来阅读邮件,则本地客户端通过POP3或IMAP协议与邮件服务器交互,将邮件信息传递到客户端(如:win98系统)。而如果你向你的朋友回复一封信件时,你所使用的MUA也是通过SMTP协议与邮件服务(一般为发送邮件地址对应的email地址)器通信,指示其希望邮件服务器帮助转发一封邮件到你朋友的邮件地址指定的邮件服务器中。若本地邮件服务器允许你通过它转发邮件,则服务器通过SMTP协议发送邮件到对方的邮件服务器。这就是接受和发送邮件的全部过程。
什么是mail Relay
邮件服务器一般具有一个或若干个域名(这些域名应该出现在某个配置文件内),邮件服务器在运行时将监听25号端口,等待远程的发送邮件的请求。网络上其他的mail服务器或者请求发送邮件的MUA(Mail User Agent,如outlook express、foxmail等等)会连接邮件服务器的25号端口,请求发送邮件,SMTP会话过程一般是从远程标识自己的身份开始,过程如下:
HELO remote.system.domainname
250 qmailserver.domain
MAIL FROM:user@somewherer.net
250 OK
RCPT TO: user1@elsewhere.net
邮件的接收者user1@elsewhere.net中的域名并不一定是邮件接受服务器的所具有的本地域名,也就是说邮件目的可能不是上面协议交互中的接收方,而是邮件发送者希望接收邮件服务器帮助其转发邮件。这时候本地系统可能有两种回答,接受它:
250 OK
或者拒绝接受它:
553 sorry,.that domain is not in my domain list of allowed recphosts
第一种情况下,本地邮件服务器是允许relay的,它接收并同意传递一个目的地址不是本地的邮件;而第二种情况则不接收非本地邮件。
为什么不能配置邮件服务器为open relay?
如果系统管理员将自己的邮件服务器设置为open relay,将会导致一些垃圾邮件发送者将你的邮件服务器作为转发自圾邮件的中继站,这将使垃圾邮件的接收者将矛头对准你,可能会导致报复性的邮件炸弹;垃圾邮件还能消耗你大量的资源,占用你的带宽。更为糟糕的事情可能是你的名字可能会上了黑名单,成为其他邮件接收者共同抵制的目标,你的邮件将被这些接收者所拒绝。
因此,系统管理员应当注意不要使自己的邮件服务器是open relay的。