如何在没有现有别名或 Postfix 中的用户的情况下使用 transport_map?

如何在没有现有别名或 Postfix 中的用户的情况下使用 transport_map?

我正在寻找一种方法来绕过一些帐户,将其发送到与 postfix 不同的邮件服务器。因此,一些帐户应该存在于 postfix 服务器上,但其他任何帐户都应该传输到第二个 SMTP 服务器。为此,我设置了一个新的 centos 7,并使用 yum install postfix 安装 postfix。在 defaultconfig 中,我添加了 transport_maps,为了进行简单测试,我在 transport_maps 中添加了 example.com 和目标邮件服务器。但是,如果我将邮件发送到[电子邮件保护]postfix 告诉我该帐户不存在。

Postfix 仅接受已知用户的邮件,因此我在 /etc/aliases userX: trash 中创建了一个别名,邮件将传输到目标 SMTP 服务器。我的问题是我不知道目标 SMTP 服务器的所有别名,因此我无法将所有别名添加到 aliases.db,是否有一个选项可以接受 Postfix 上已知域的所有用户?

举一个简单的例子,我需要将所有用户传输到不同的 SMTP 服务器。

#postconf -n
alias_database = hash:/etc/aliases
command_directory = /usr/sbin
config_directory = /etc/postfix
daemon_directory = /usr/libexec/postfix
data_directory = /var/lib/postfix
debug_peer_level = 2
debugger_command = PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin ddd $daemon_directory/$process_name $process_id & sleep 5
html_directory = no
inet_interfaces = all
inet_protocols = all
mail_owner = postfix
mailq_path = /usr/bin/mailq.postfix
manpage_directory = /usr/share/man
mydestination = $myhostname, example.com
newaliases_path = /usr/bin/newaliases.postfix
queue_directory = /var/spool/postfix
readme_directory = /usr/share/doc/postfix-2.10.1/README_FILES
sample_directory = /usr/share/doc/postfix-2.10.1/samples
sendmail_path = /usr/sbin/sendmail.postfix
setgid_group = postdrop
transport_maps = hash:/etc/postfix/transport
unknown_local_recipient_reject_code = 550

我的 /etc/postfix/transport 如下所示:

example.com smtp:smtp.local

更新 如下所述,我尝试使用以下方法解决问题fallback_transport。我已使用以下方法更新了 main.cf

fallback_transport = relay
fallback_transport_maps = hash:/etc/postfix/transport

并且的内容/etc/postfix/transport

example.com smtp:smtp.local
*           smtp:smtp.local

但使用此配置,问题是一样的。用户不存在,所以 postfix 告诉我用户不存在。如果我从 mydestination 中删除 example.com URL,则行为是将邮件发送到[电子邮件保护]在 mailq 中

答案1

您必须使用fallback_transportluser_relay

从:http://www.postfix.org/postconf.5.html

fallback_transport(默认值:空)

本地(8)传递代理应该使用可选的消息传递传输来处理别名(5)或 UNIX 密码数据库中未找到的名称。

luser_relay(默认值:空)

可选的未知本地(8)收件人的捕获全部目的地。默认情况下,与 $mydestination、$inet_interfaces 或 $proxy_interfaces 匹配的域中的未知收件人的邮件将作为无法投递的邮件返回。

需要考虑:

本地(8)传递功能的优先级从高到低为:别名、.forward 文件、mailbox_transport_maps、mailbox_transport、mailbox_command_maps、mailbox_command、home_mailbox、mail_spool_directory、fallback_transport_maps、fallback_transport 和 luser_relay。

相关内容