当前位置: 首页 > 知识库问答 >
问题:

为什么2个不同的服务器(传入和传出)在邮件服务器?

慕嘉茂
2023-03-14

我有一个关于邮件服务器的基本问题。通常,任何通用服务器(不一定是邮件服务器)都会处理所有类型的相关请求,即与客户机的双向交互(比如向客户机发送和接收消息),但如果是邮件服务器,有两个不同的服务器——一个用于发送邮件,称为遵循SMTP协议的传出服务器,另一个用于接收邮件,称为遵循POP3/IMAP协议的传入服务器。为什么。因此,这两个协议不能在一个协议中容纳,以处理双向消息流。另外,在一般业务中,这两台服务器通常托管在同一台机器上吗?

共有2个答案

宇文和昶
2023-03-14

就我个人而言,我对几乎没有人再使用UUCP感到遗憾:)

邮件运输、管理和收集的分离有其历史、哲学和设计基础。这符合Unix世界的精神:“只做一件事,但要做对”和“让一切尽可能简单”。

电子邮件问题有多复杂,涵盖了多少技术,请阅读此处:https://en.wikipedia.org/wiki/Email,然后查看脚注中的相关RFC以了解详细信息。

很难实现一个既考虑到电子邮件的所有细微差别又保持简单(在SMTP中很简单)的单一程序。这样一块巨石的开发、维护和管理将是一场噩梦,自20世纪70年代以来,邮局已经发生了多次变化。

至于第二个问题,没有理由使用同一台物理机器,但除了可用资源的数量之外,也没有其他禁忌症。

关翰
2023-03-14

因为协议很旧了。在古老的Unix传统中,现在忽略UUCP:

首先是SMTP,在站点之间传输邮件,登录时使用文本模式客户端在服务器/网络上本地读取邮件。没有必要获取邮件,您使用了“邮件”命令,它访问了您的本地邮件假脱机(SMTP服务器附加到的文件系统上的一个包含您的邮件的文件)。

后来,人们希望在自己的主机上阅读邮件,于是发明了一种协议来提供服务。POP服务器将读取相同的spool文件,并允许您将所有消息下载到间断连接的客户端计算机。SMTP被重新用于发送邮件,因为它已经存在,并且很容易适应这个目的。

现在,通常有三个值得注意的服务器:SMTP提交服务器、SMTP传输服务器和IMAP。提交服务器是服务的最终用户提交电子邮件并转发到最终主机的地方,例如Gmail用户提交电子邮件的谷歌服务器(通常在端口465或端口587上,带有身份验证)。传输服务器负责在站点之间发送和接收电子邮件(例如,当雅虎和Gmail在端口25上为客户交换邮件时)。最终用户使用IMAP获取他们的电子邮件。

在大型站点上,这三项服务通常由不同主机上的不同服务器提供。在Gmail等大型服务上,它们是独立的服务器池。

在小型企业主机上,它们通常只是一台机器。

有更新的、更集成的协议。例如,EAS和EWS都在同一协议中包含邮件获取和提交。

 类似资料:
  • 是否可以使用server1将文件上传到server2? 访客请访问:我的网站。com(server1) 然后他将一个文件上传到server1,server1会自动将该文件上传到server2?? 或者简单地说,用户可以使用server1作为代理将文件上传到server2,因为server2只能从server1访问 会有帮助吗,还是有其他更好的解决方案?

  • 我希望能够从Java服务器应用程序发送/接收邮件。是否有标准的工具链可供使用?[主要的是,我正在用Java编写一个企业web应用程序,我需要一种方法(1)发送包含授权代码的电子邮件,以及(2)接收投诉。] 谢谢! 编辑:我道歉。这完全是我的错。我在规格中不清楚。 当我说发送/接收电子邮件时,我的意思是:我需要我的应用程序能够运行自己的邮件服务器。我没有正在使用的外部imap/pop3帐户。我的应用

  • C# Mail Server 是 Java Email Server (JES) 的 C# 移植版本。

  • 我找不到这个问题的答案。。。 如果我注入服务容器,如: 那么它的工作原理就和我的一样好: 那么,我为什么不直接注入服务容器,然后从类中获取服务呢?

  • 1.【推荐】 高并发服务器建议调小 TCP 协议的 time_wait 超时时间。 说明:操作系统默认 240 秒后,才会关闭处于 time_wait 状态的连接,在高并发访问下,服务器端会因为处于 time_wait 的连接数太多,可能无法建立新的连接,所以需要在服务器上 调小此等待值。 正例:在 linux 服务器上请通过变更/etc/sysctl.conf 文件去修改该缺省值(秒): net

  • 问题内容: 我一直看到在AngularJS中创建控制器和服务的不同示例,我很困惑,有人可以向我解释两种方法之间的区别吗? 还有一个控制器示例: 问题答案: 第一个将污染全局名称空间,从长远来看,这不是您想要的。 第二个将控制器的作用域限定为该模块实例。它也可以注射。最好还是使用数组符号(如下所示),因为这会在最小化后继续存在。 (角度)服务与工厂之间的差异似乎很小。服务包装了工厂,工厂使用$ in