我想要的功能类似于 postfix 的relay_recipients,但我需要在 sendmail 中实现它。我在一台服务器上有一个已知的良好收件人地址列表,这台机器充当面向网络的前端(邮件从外部进入,在外箱上进行预处理,最终转发到内箱。企业邮件服务器)但我无法进行呼叫转移或 LDAP 查询。
它可能是 sendmail 的 *.db 文件之一的功能,但我的记忆或理解 - 或两者 - 目前都让我失望。
注意:这是一个邮件监视/邮件扫描器盒,因此邮件在本地排队、过滤,然后投递。
答案1
您可以使用功能(virtusertable)获得后缀的等价物中继收件人映射
发送邮件
LOCAL_CONFIG
dnl virtusertable works by default only for local email domains
dnl $={VirtHost} lists non local domains served by virtusertable
C{VirtHost}example.net
divert(0)
dnl _VIRTUSER_STOP_ONE_LEVEL_RECURSION_ is described in m4/proto.m4 file
define(`_VIRTUSER_STOP_ONE_LEVEL_RECURSION_')dnl
FEATURE(`virtusertable')
virtusertable 文件(需要 makemap 编译):
# list of valid emails in example.net
[email protected] %0
[email protected] %0
# default entry for example.net
@example.net ERROR:5.1.1:550 User unknown
https://groups.google.com/forum/#!topic/comp.mail.sendmail/owHMoZIAkDg news:comp.mail.sendmail 线程,来自 2006 年。
顺便说一句,您可以将 FEATURE(ldap_routing)与标准 sendmail 映射(hash、btree 等)一起使用,而不是 LDAP 查找。
答案2
我最终采用access_db',
以下方式使用访问(FEATURE( hash -T -o /etc/mail/access.db') ):
To:[email protected] RELAY
To:[email protected] RELAY
....
robintur.it DENY
行为符合要求。