2024年4月21日发(作者:)

第3课时 关于邮件的理论以及通过cmd telnet到服务器发送和接受邮件(这一课时

很重要)

其实邮件服务器就类似于邮局,发送方发到自己选择的邮件服务器,然后邮件服务器

发送到目标服务器,目标服务器接收邮件,然后目标去目标服务器接受邮件。这这个过程

中必须注意,除了用户取邮件用的是POP3协议,发送邮件到自己选择的服务器和自己这

边的服务器转邮件到目标服务器之间用到的协议都是SMTP协议。只有用户主动去取邮件

的时候才是POP3协议。

每个邮箱就相当于我们取信的和发信的邮局提供的邮件箱一样。我们的每个申请的邮

箱账号,其实就是一个邮件箱,在邮件服务器上建立了一个账号和空间,邮件会放着这个

服务器给我们开的账户的空间里。

邮件服务器按通讯协议分为两种类型

SMTP服务器

POP3/IMAP服务器

发送邮件或者是将邮件转发给另外一个邮件服务器就是用SMTP协议。

如果用户去取邮件,使用的协议就是POP3协议

Smtp服务器端口号是:25

Pop3服务器端口号是:110

Smtp服务器登陆,首先需要先使用base64格式编码用户名和密码,然后登陆服务器

时输入编码后的用户名与密码给服务器验证才会通过,而pop3服务器登陆是不需要使用

base64编码的,直接输入原来的用户名和密码。

Telnet :25

第四课时 发送邮件的原理(相当重要)

一定要注意,其实在cmd中和smtp服务器交流的时候,邮件和服务器之间的关系。

在写邮件之前,需要先定义mail from<>和rcpt to<>,这个是专门和服务器打交道,

由服务器识别的。而在写邮件的时候,邮件分两部分,一个是邮件头,一个是邮件内容(从

‘data’表示内容开始,data之后是全部的内容,以一个‘.’ 表示邮件内容结束),内

容部分的头部分又需要再写一个from:<>,这里面写邮件的发件人,可以是开始的mail

from也可以是另外一个邮箱名字。这个邮件头,服务器是不检查的,是给邮件阅读程序看

的,所以发出去之后,在客户端邮件阅读程序(outlook)中我们看到的发件人实际上是

邮件头上面写的发件人,而不是登陆邮箱的发件人的邮箱。一定要注意这点。所以有的邮

件中看到发件人的名字是unknown,就是因为邮件头中没有输入发件人的名字。内容需要

写from, to ,subject, date, 然后才是正式的正文

其实就相当于我们自己写了一封信,但是信上面的发信人不是写自己的名字,而是别

人的名字,冒充别人,收件人是没办法区分发件人的真实身份的。

如果是普通的客户端访问smtp服务器是需要用户名和密码的,而针对各个smtp服

务器之间,是不需要用户名和密码的,否则的话,smtp服务器是不可能知道那么多smtp