如何让 Postfix 更好地通过 LMTP 将电子邮件传送到 Dovecot(虚拟与中继)?

如何让 Postfix 更好地通过 LMTP 将电子邮件传送到 Dovecot(虚拟与中继)?

有两种方式Postfix可以通过 发送电子邮件LMTP

第一种方法Kyle Dent 在他的 Postfix 书中推荐了它。他建议在我们需要将电子邮件存储在 Postfix 不支持的专有消息存储中(如mdbox)时使用它。

virtual_mailbox_domains = hash:/etc/postfix/virtual_domains
virtual_mailbox_maps = hash:/etc/postfix/virtual_recipients
virtual_transport = lmtp:unix:/var/imap/socket/lmtp

/etc/postfix/virtual_domains

a.com -
b.com -

/etc/postfix/virtual_recipients

[email protected] -
[email protected] -

第二种方法这是 Dovecot 一书的作者 Peer Heinlein 推荐的。他说,让 Postfix 成为中继要好得多。

relay_domains = hash:/etc/postfix/transport
relay_recipient_maps = hash:/etc/postfix/relay_recipients
transport_maps = hash:/etc/postfix/transport

/etc/postfix/transport

a.com lmtp:unix:/var/imap/socket/lmtp
b.com lmtp:unix:/var/imap/socket/lmtp

/etc/postfix/relay_recipients

[email protected] -
[email protected] -

他不推荐第一种方法,因为:

  • “Postfix 逻辑规定,仅当 Postfix 本身是电子邮件路由的最终物理目的地时,才应在那里输入电子邮件域和主机名”[但在第一种情况下,postfix 将电子邮件交给 dovecot,而不是自己存储]
  • 在这种情况下,当 Dovecot 用户存储在数据库中时,“Postfix 与用户数据无关”[virtual_mailbox_domains我们virtual_mailbox_maps可以使用相同的外部数据库拒绝未知收件人的电子邮件]
  • “root@localhost 和 wwwrun@localhost 也通过 LMTP 传送到 Dovecot - 这些重要的系统帐户通常甚至没有设置”[是否可以使用本地传输来发送此类电子邮件,而其余的电子邮件则使用虚拟传输通过 LMTP 将电子邮件传递给 dovecot?]

我喜欢第一种方法,目前还看不出使用第二种方法有什么有价值的优势。当我们需要将电子邮件发送到不同的 MTA 时,我们应该使用 Postfix 作为中继。但也许我错了,所以我决定在这里问一下。

这两种情况都会将电子邮件发送到队列,都会过滤发送给不存在的收件人的电子邮件,这样这些电子邮件就不会进入队列。那么这两种方式的真正区别是什么?它们各自有什么优缺点?

相关内容