1. 首页
  2. 综合百科
  3. smtp端口怎么填(免费pptp服务器ip地址)

smtp端口怎么填(免费pptp服务器ip地址)

简介:关于smtp端口怎么填(免费pptp服务器ip地址)的相关疑问,相信很多朋友对此并不是非常清楚,为了帮助大家了解相关知识要点,小编为大家整理出如下讲解内容,希望下面的内容对大家有帮助!
如果有更好的建议或者想看更多关于综合百科技术大全及相关资讯,可以多多关注茶馆百科网。

在电子邮件协议中,POP3协议用于接收邮件,SMTP协议用于发送邮件。SMTP's全称是Simple Mail Transfer Protocol,即简单邮件传输协议,顾名思义。

和POP3相比,SMTP真的很简单。这里的简单不是说SMTP命令比POP3少,而是说SMTP命令是有序的,而POP3命令是无序的,这一点理解起来非常重要。也就是说SMTP的命令是要组合在一起才能完成一次邮件发送任务,单独调用每个命令的意义不大.POP3命令是不同的。LIST、STAT、UIDL、TOP、RETR和DELE等命令可以独立使用。例如,使用LIST命令查看邮件列表,然后使用RETR命令接收邮件。简单的另一层含义是:就socket编程而言实现发送数据要比实现接收数据简单点。

比如接收数据时,需要判断数据是否已经接收。如果一段数据以回车结束,就要判断是否收到了“rn”,这样才能保证读取完整的消息体。发送数据时不需要考虑以上问题。可以按照自己的节奏发送数据,可以一次性发送整个消息体,也可以不考虑服务器的生死,一个字节一个字节地发送数据,直到发送完整个消息。换句话说,接收数据要以流的方式进行,而不是简单的开辟一个缓冲区,进行一次recv操作。虽然这种方法在大多数情况下没有问题,比如写一个演示程序,但是如果你想让你的网络程序非常健壮,你最好用流的方式来读。因为并不是每次对方都会以你期望的方式给你发送数据,比如你打开了一个1024字节的接收网络数据的缓冲区,但是对方可能一次只给你发送一个字节,或者发送1025个字节。SMTP和HTTP协议一样都属于请求应答式协议,也就是一问一答,客户端发送命令后,服务器返回响应内容。的SMTP的响应格式和HTTP协议基本相同,都是响应代码的响应描述。响应代码用三位数表示,空格后面是响应信息的描述,只是HTTP协议会多一个版本信息。

这种问答协议在HTTP协议中并不明显。只有当HTTP连接设置为Keep-Alive,时,您才有机会使用GET或POST命令与服务器反复交互,否则,将只有一个问题和答案。

但在SMTP协议下这种一问一答的交互方式就非常明显了。的主要原因是有许多步骤涉及到完成一个电子邮件发送任务。我将发送电子邮件分为以下五个步骤:

1、建立会话;2、身份认证;3、发送邮件信封(发件人和收件人);4、发送邮件内容(邮件正文和附件);5、关闭会话

SMTP命令主要分布在这五个步骤中。以网易的yeah邮箱(smtp.yeah.net服务器)为例,详细讲解这五个步骤的实现。C代表客户端,S代表服务端.

一、建立会话

SMTP命令:HELO

这个阶段用来建立客户端和SMTP服务器之间的连接,并在此基础上双方进行友好的问候。SMTP服务器的默认端口号是25,如果支持SSL协议,默认端口号是465。如果采用STARTTLS协议,默认端口为587。所谓STARTSSL,其实就是SSL协议。这只是双方在开始会话之前的一种礼貌。你还支持SSL吗?

连接建立后,服务器将发送一条欢迎消息。然后你需要跟服务器打招呼,带上你机器的名字。如下所示:

s : 220 yeah.net反垃圾邮件GT for Coremail System(yeah[2014 10 16])c : HELO您的计算机名称s : 250 OK

二、身份认证

SMTP命令:AUTH LOGIN

该命令用于身份验证。虽然这一步在SMTP协议中不是强制的,但是目前几乎所有的SMTP服务器都需要认证。增加这一步可以大大减少垃圾邮件的存在,防止有人伪造其他发件人发送邮件。这一步中账号和密码需要进行base64编码,包括服务器发来的提示信息也是base64编码。

首先发送AUTH LOGIN命令,服务器将返回“334。

XNlcm5hbWU6”,“dXNlcm5hbWU6”解码后为“username:”
UGFzc3dvcmQ6解码为”Password:”
也就是提示用户输入用户名和密码。认证成功后返回235注意返回的不是二百五(250)哦。 接着根据服务器返回的提示,发送账号(发件人的邮箱账号)和密码。

C: AUTH LOGINS: 334 dXNlcm5hbWU6C: base64编码后的账号(发件人的邮箱账号)S: 334 UGFzc3dvcmQ6C: base64编码后的密码S: 235 Authentication successful

至于为何是base64编码,可能是SMTP协议设计时考虑到用户名和密码的重要性,所采用的最简单的“加密”手段。虽然base64只是编码方式,不是加密方式,但在早期控制台输入命令的情况下,别人还是一下无法像记住明文一样记住这些无规律的base64编码。不过随着SSL的应用,这些都已不重要了。

三、发送邮件信封

SMTP命令:MAIL FROM、RCPT TO
该阶段是告诉服务器发件人和收件人的邮箱地址,可以把这个阶段想象为你在写纸质信件的信封。MAIL FROM用于指定发件人邮箱,该邮箱地址其实就是上述身份认证中的账号,如:
MAIL FROM: <lig4961@yeah.net>
RCPT TO用于指定收件人邮箱,一次只能指定一个收件人地址,如果收件人有多个的话,可以多次发送RCPT TO命令。

C: MAIL FROM: <lig4961@yeah.net>S: 250 Mail OKC: RCPT TO: <syfzxm@163.com>S: 250 Mail OKC: RCPT TO: <lig4961@yeah.net>S: 250 Mail OK

注意,邮件地址要用放入<>中,此外,每条命令发送完毕后,一定要判断服务器返回码是否是250。 如果返回的不是二百五,说明你发送的地址可能是二百五,也就是不正确的地址,比如邮件地址中没有@,或者在同一个邮箱系统中,SMTP服务器发现收件人的地址并不存在,也就是没有注册过。

看到这里可能有人会有疑问:我们通过邮件客户端或网页写邮件时,不是有三种身份的收件人么?即:主送人(to)、抄送人(cc)、密送人(bcc)。是否存在RCPT CC和RCPT BCC命令,用于发送抄送人和密送人的邮箱地址呢?很遗憾,没有这两个命令。也就是说抄送人(cc)和密送人(bcc),也是通过RCPT TO命令进行发送。
既然发送时不区分,那么我们在收到的邮件中怎么还能看到主送人和抄送人呢?或者说如何做到让密送人在收到的邮件中看不见的。答案在下面邮件内容中。

四、发送邮件内容

SMTP命令:DATA

这一步是发送数据最多也是最复杂的一步,但操作命令却只有一个,就是DATA,也就是数据(邮件内容),邮件内容主要包括三个部分(可能会有内嵌资源文件,也可以理解为狭义上的附件):

1、邮件头;
2、邮件正文;
3、邮件附件;

DATA命令发送后,服务器会返回354响应码,并告诉客户端,数据结束要以”rn.rn”来标识。接下来客户端就可以发送整个邮件内容了。

DATA354 End data with <CR><LF>.<CR><LF>SUBJECT: =?UTF-8?B?5p2l6IeqU29mdGxlZe+8jOi/meaYr+S4gOWwgea1i+ivlemCruS7tg==?=FROM: <lig4961@yeah.net>TO: 'softlee1' <syfzxm@163.com>, 'softlee2' <lig4961@yeah.net>MIME-Version: 1.0Content-Type: multipart/mixed; boundary="=NextPart_SOFTLEE_Mail_E0B1A829CB1D4f55A037AE04B6A72078"--=NextPart_SOFTLEE_Mail_E0B1A829CB1D4f55A037AE04B6A72078Content-Type: text/html; charset=utf-8Content-Transfer-Encoding: base64PCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXRyYW5zaXRpb25hbC5kdGQiPg0KPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPg0KDQo8aGVhZD4NCiAgICA8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQv

邮件内容的格式目前基本都采用MIME格式,MIME格式比较简单,可参见文章:《如何解析EML(邮件)格式的文件以及一款小巧的EML邮件阅读工具》。
这里我们不具体介绍如何编码邮件正文和附件。主要介绍邮件头中的信息,主题(Subject)、发件人(From)、收件人(To)、抄送(Cc)。我们看查看邮件时,读到的主题、收件人和抄送人就来自于上述字段。这里收件人和抄送人仅作为邮件头的一部分进行展现,服务器并不会关心这些地址是否真实存在,或者说服务器并不关心这些地址是否跟使用RCPT TO命令发送的地址保持一致。回到第三阶段中最后的几个问题,我们可以通过邮件头来展现该邮件的抄送人是谁,并且将密送人隐藏掉。当然你也可以篡改上述信息,比如隐瞒某些收件人,或者将密送人也一并展现。
邮件正文和附件的编码可参照MIME格式的文章。最后所有数据发送完毕后,一定要发送”rn.rn”,从而告诉SMTP服务器所有数据发送完毕。

五、会话结束

SMTP命令:QUIT
这一步非常简单,就是发送一条QUIT命令,QUIT命令发送完毕后,还是要判断服务器的返回码是否为250。如果返回的不是,则表明发送失败,SMTP服务器可能不会将邮件转发到收件人所在的邮箱中,这一点很重要。

至此,整个SMTP协议介绍完毕。SMTP协议比较简单,但具体的实现细节可能还有很多,需要在实践中去体验,有的服务器返回消息体是多行的,比如outlook邮箱的服务器,下面是outlook邮箱使用STARTTLS协议截图:

附一: SMTP邮件发送工具
该工具特点:
1、基于命令行方式且只有一个独立文件;
2、支持SSL、STARTSSL协议;
3、具有丰富的命令行参数;

本文主要介绍了关于smtp端口怎么填(免费pptp服务器ip地址)的相关养殖或种植技术,综合百科栏目还介绍了该行业生产经营方式及经营管理,关注综合百科发展动向,注重系统性、科学性、实用性和先进性,内容全面新颖、重点突出、通俗易懂,全面给您讲解综合百科技术怎么管理的要点,是您综合百科致富的点金石。
以上文章来自互联网,不代表本人立场,如需删除,请注明该网址:http://seotea.com/article/733240.html