SMTP是如何如何转发邮件的呢?

SMTP是如何如何转发邮件的呢?,第1张

电子邮件在Internet上发送和接收的原理可以很形象地用我们日常生活中邮寄包裹来形容:当我们要寄一个包裹时,我们首先要找到任何一个有这项业务的邮局,在填写完收件人姓名、地址等等之后包裹就寄出而到了收件人所在地的邮局,那么对方取包裹的时候就必须去这个邮局才能取出。同样的,当我们发送电子邮件时,这封邮件是由邮件发送服务器(任何一个都可以)发出,并根据收信人的地址判断对方的邮件接收服务器而将这封信发送到该服务器上,收信人要收取邮件也只能访问这个服务器才能完成。

1 电子邮件的发送

SMTP是维护传输秩序、规定邮件服务器之间进行哪些工作的协议,它的目标是可靠、高效地传送电子邮件。SMTP独立于传送子系统,并且能够接力传送邮件。

SMTP基于以下的通信模型:根据用户的邮件请求,发送方SMTP建立与接收方SMTP之间的双向通道。接收方SMTP可以是最终接收者,也可以是中间传送者。发送方SMTP产生并发送SMTP命令,接收方SMTP向发送方SMTP返回响应信息。

连接建立后,发送方SMTP发送MAIL命令指明发信人,如果接收方SMTP认可,则返回OK应答。发送方SMTP再发送RCPT命令指明收信人,如果接收方SMTP也认可,则再次返回OK应答;否则将给予拒绝应答(但不中止整个邮件的发送操作)。当有多个收信人时,双方将如此重复多次。这一过程结束后,发送方SMTP开始发送邮件内容,并以一个特别序列作为终止。如果接收方SMTP成功处理了邮件,则返回OK应答。

对于需要接力转发的情况,如果一个SMTP服务器接受了转发任务,但后来却发现由于转发路径不正确或者其他原因无法发送该邮件,那么它必须发送一个“邮件无法递送”的消息给最初发送该信的SMTP服务器。为防止因该消息可能发送失败而导致报错消息在两台SMTP服务器之间循环发送的情况,可以将该消息的回退路径置空。

2 电子邮件的接收

电子邮件协议第3版本(POP3)

要在因特网的一个比较小的节点上维护一个消息传输系统(MTS,Message Transport System)是不现实的。例如,一台工作站可能没有足够的资源允许SMTP服务器及相关的本地邮件传送系统驻留且持续运行。同样的,要求一台个人计算机长时间连接在IP网络上的开销也是巨大的,有时甚至是做不到的。尽管如此,允许在这样小的节点上管理邮件常常是很有用的,并且它们通常能够支持一个可以用来管理邮件的用户代理。为满足这一需要,可以让那些能够支持MTS的节点为这些小节点提供邮件存储功能。POP3就是用于提供这样一种实用的方式来动态访问存储在邮件服务器上的电子邮件的。一般来说,就是指允许用户主机连接到服务器上,以取回那些服务器为它暂存的邮件。POP3不提供对邮件更强大的管理功能,通常在邮件被下载后就被删除。更多的管理功能则由IMAP4来实现。

邮件服务器通过侦听TCP的110端口开始POP3服务。当用户主机需要使用POP3服务时,就与服务器主机建立TCP连接。当连接建立后,服务器发送一个表示已准备好的确认消息,然后双方交替发送命令和响应,以取得邮件,这一过程一直持续到连接终止。一条POP3指令由一个与大小写无关的命令和一些参数组成。命令和参数都使用可打印的ASCII字符,中间用空格隔开。命令一般为3~4个字母,而参数却可以长达40个字符。

因特网报文访问协议第4版本(IMAP4)

IMAP4提供了在远程邮件服务器上管理邮件的手段,它能为用户提供有选择地从邮件服务器接收邮件、基于服务器的信息处理和共享信箱等功能。IMAP4使用户可以在邮件服务器上建立任意层次结构的保存邮件的文件夹,并且可以灵活地在文件夹之间移动邮件,随心所欲地组织自己的信箱,而POP3只能在本地依靠用户代理的支持来实现这些功能。如果用户代理支持,那么IMAP4甚至还可以实现选择性下载附件的功能,假设一封电子邮件中含有5个附件,用户可以选择下载其中的2个,而不是所有。

与POP3类似,IMAP4仅提供面向用户的邮件收发服务。邮件在因特网上的收发还是依靠SMTP服务器来完成。

[电子邮件地址的构成]

电子邮件地址的格式由三部分组成。第一部分“USER”代表用户信箱的账号,对于同一个邮件接收服务器来说,这个账号必须是唯一的;第二部分“@”是分隔符;第三部分是用户信箱的邮件接收服务器域名,用以标志其所在的位置。

配置重试次数和重试间隔

如果无法在第一次尝试时传递邮件,则 Microsoft 简单邮件传输协议 (SMTP) 服务会在指定时间后再次从队列目录发送该邮件。可以设置传递尝试之间的时间间隔,还可以指定尝试传递邮件的次数。达到限制后,会将未送达报告 (NDR) 和邮件发送到 Badmail(死信)目录中。

可以使用这些设置提高服务器输出速度,但这些设置只影响传出邮件,对其他服务器处理传入邮件的速度不会有任何影响。要配置这些设置,请按照下列步骤操作:

在 Microsoft 管理控制台 (MMC) 中,单击以选中 SMTP 虚拟服务器,然后在操作菜单上,单击属性。

单击传递选项卡。

在第一次重试间隔(分钟)中,键入在发布第一个通知之前尝试传递的时间值。默认值为 15 分钟。

在第二次重试间隔(分钟)中,键入在发布第二个通知之前尝试传递的时间值。默认值为 30 分钟,即第一次重试间隔后 30 分钟。

在第三次重试间隔(分钟)中,键入在发布第三个通知之前尝试传递的时间值。默认值为 60 分钟,即第二次重试间隔后 60 分钟。

在后续重试间隔(分钟)中,键入在发布通知之前尝试传递的时间值。默认值为 240 分钟。

设置邮件的跃点计数

传递邮件时,邮件在到达其最终目标之前可能被路由到多个服务器上。可以指定允许邮件通过的服务器数目。这称为跃点计数。要设置邮件的跃点计数,请按照下列步骤操作:

在 MMC 中,单击以选中 SMTP 虚拟服务器,然后在操作菜单上,单击属性。

在传递选项卡上,单击高级以打开高级传递对话框。

在最大跃点计数中,键入邮件可以通过的源服务器和目标服务器之间的跃点的数值。默认值为 15 个跃点。

注意:设置跃点计数后,SMTP 服务器将计算邮件头的已接收字段中列出的跃点。如果已接收字段中的数目超出最大跃点计数设置,邮件就会返回给发件人,并随附一个 NDR。

设置虚拟域

虚拟域可替换协议中任何发件人行中使用的任意本地域名称。此种替换仅发生在第一个跃点上。

在 MMC 中,单击以选中 SMTP 虚拟服务器,然后在操作菜单上,单击属性。

在传递选项卡上,单击高级以打开高级传递对话框。

在虚拟域中,键入您希望在邮件头中显示的域名,而不是域的真实名称。

注意:对此类邮件的所有答复都是通过使用虚拟域的 SMTP 虚拟服务器进行路由的。

设置完全限定域名

启动时,在系统属性对话框的网络标识选项卡上指定的名称将自动作为完全限定域名 (FQDN)。如果更改此名称(手动或通过加入 Microsoft Windows 2000 域),则在下次重新启动计算机后,新名称将自动用作 FQDN。您不必执行任何操作即可更新虚拟服务器的 FQDN。

要重写网络标识选项卡上自动使用的计算机名和域名,请在高级传递对话框(通过传递选项卡可找到此对话框)中更改 FQDN。这样,Microsoft SMTP 服务将使用指定的名称,而不使用在网络标识选项卡上指定的名称。要设置 FQDN,请按照下列步骤操作:

在 MMC 中,单击以选中 SMTP 虚拟服务器,然后在操作菜单上,单击属性。

在传递选项卡上,单击高级以打开高级传递对话框。

在完全限定的域名中,键入 FQDN。

配置智能主机

可以通过智能主机路由所有要发送到远程域中的传出邮件,而不是将这些邮件直接发送到域。这允许您通过比其他路由更直接或更经济的连接来路由邮件。智能主机类似于远程域的路由域选项。区别是指定智能主机后,所有传出邮件都将路由到该服务器。而使用路由域,则只有发往远程域的邮件路由到特定服务器。

如果设置了智能主机,则仍可以为远程域指定其他路由。路由域设置将重写智能主机设置。要设置智能主机,请按照下列步骤操作:

在 MMC 中,单击以选中 SMTP 虚拟服务器,然后在操作菜单上,单击属性。

在传递选项卡上,单击高级以打开高级传递对话框。

在智能主机中,键入智能主机服务器的名称。可以键入一个字符串来表示名称,也可以键入 IP 地址。

如果想让 Microsoft SMTP 服务在将远程邮件转发给智能主机服务器之前尝试直接传递这些远程邮件,请单击以选中发送到智能主机之前尝试直接进行传递复选框。默认情况下,会向智能主机发送所有远程邮件,而不尝试直接进行传递。

注意:可以通过 FQDN 或 IP 地址来标识智能主机。请注意,如果更改 IP 地址,则还必须在每台虚拟服务器上分别进行更改。如果使用的是 IP 地址,请将其括在方括号 ([]) 中以提高系统性能。Microsoft SMTP 服务首先检查服务器名称,然后检查 IP 地址。括号将值标识为 IP 地址,因此会跳过 DNS 查找。

启用反向 DNS 查找

如果选择了此选项,Microsoft SMTP 服务将尝试验证客户端的 IP 地址是否与客户端用 EHLO 或 HELO 命令提交的主机或域相匹配。

注意:因为此功能可验证所有传入邮件的地址,所以使用它会影响 Microsoft SMTP 服务性能。清除该复选框可禁用此功能。

如果反向 DNS 查找成功,“已接收”邮件头将保持完好无损。如果验证不成功,则“已接收”邮件头中的 IP 地址后面会出现“未验证”。要启用反向 DNS 查找,请按照下列步骤操作:

在 MMC 中,单击以选中 SMTP 虚拟服务器,然后在操作菜单上,单击属性。

在传递选项卡上,单击高级以打开高级传递对话框。

单击以选中对传入邮件执行反向 DNS 查找复选框。

邮件无法发送到smtp服务器的解决方法如下:检查SMTP服务器设置、检查邮箱账户和密码、检查收件人地址、检查网络连接。

1、检查SMTP服务器设置

在使用邮件模块发送邮件前,需要设置SMTP服务器地址和端口号。可以通过以下代码进行设置。

2、检查邮箱账户和密码

在进行邮件发送时,需要对发件人的账户进行验证。可以通过以下代码进行验证。

3、检查收件人地址

在进行邮件发送时,需要设置收件人地址。可以通过以下代码进行设置。

4、检查网络连接

如果邮件发送失败,可以尝试检查网络连接是否畅通,并尝试重新发送邮件。5。检查邮件内容格式:在进行邮件发送时,需要设置邮件的主题、正文和附件。可以通过以下代码设置邮件内容。

邮件发送失败的原因:

1、SMTP服务器设置错误:当我们使用邮件模块进行邮件发送时,需要设置SMTP服务器地址和端口号。如果设置错误,会导致邮件发送失败。解决方法是检查SMTP服务器地址和端口号是否正确,并确保连接SMTP服务器的网络是畅通的。

2、账户验证失败:在SMTP服务器发送邮件时,需要对发送者的账户进行验证。如果账户验证失败,则邮件发送会失败。解决方法是检查发送者的账户和密码是否正确,并且确保在发件人账户中开启了SMTP服务。

3、收件人地址错误:如果发送的邮件中包含错误的收件人地址,邮件会发送失败。解决方法是检查收件人地址是否正确或者在收件人地址中使用正确的分隔符进行分隔。

4、网络问题:有时候,邮件发送失败可能是因为网络问题导致的。例如SMTP服务器没有响应或者网络连接中断等。解决方法是检查网络连接是否畅通,并尝试重新发送邮件。

5、邮件内容格式错误:邮件内容包括主题、正文、附件等。如果邮件内容格式错误,则邮件发送会失败。解决方法是检查邮件内容格式是否正确,并确保附件文件存在。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » SMTP是如何如何转发邮件的呢?

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情