Postfix中的MTA,MDA和邮箱之间的协议

我读过LMTP用于pipe理本地消息,不需要队列。 我不明白这是如何涉及协议,所以请纠正我,如果我错了:

假设一台机器有两台服务器,Postfix和Dovecot,所以:

  • MTA是否使用LMTP与MDA通信?
  • MDA使用LMTP将邮件存储到邮箱吗?

提前致谢!

有很多可能性。 后缀队列pipe理器可以

  • pipe道邮件到一个命令,例如'procmail -a“$ EXTENSION”'
  • 使用Postfix本地邮件传送或自己非常基本的称为虚拟的 MDA,都可以将电子邮件保存到本地硬盘上的虚拟邮箱
  • 通过LMTP将邮件传递给外部的MDA,eq Dovecot

LMTP可以使用INET或UNIX套接字。 如果Dovecot安装在同一台服务器上,则可能更喜欢UNIX套接字。 Postfix和Dovecot都需要进行相应的configuration 。 这种设置的主要好处是,您将能够使用Dovecot的function,如配额pipe理。

Postfix还可以将Dovecot用于其他目的,如SASLauthentication ,所以LMTP不是他们用来相互通信的唯一协议。

这取决于你如何configuration它。 在有两个服务的机器上,我希望LMTP根本不用,如果使用dovecot的LDA,则postfix被configuration为根据mailbox_command选项configuration直接调用dovecot-deliver。 在大容量服务器上,可能会将postfix + dovecotconfiguration为LMTP传输,但需要花费额外的资源保持dovecot-lmtp处于活动状态。

我想不出为什么你会使用LMTP内部LDA,或者即使你可以。 一旦第一个LDA接受了来自MTA的交易,它就不能回头说“糟糕,我犯了一个错误,请重新给我或发送反弹” – 否,LMTP不支持排队或重新发送并且不能将带外消息发送回MTA。 无论如何,我不认为dovecot支持通过LMTP传递给另一个LDA。