Sendmail 如何拒绝发送给本地用户的电子邮件,除非它来自受信任的子网?

Sendmail 如何拒绝发送给本地用户的电子邮件,除非它来自受信任的子网?

我已设置 sendmail 来接收几个域的邮件并为几个子网的系统中继消息。最近,一个特定的仅供内部使用的地址收到了很多垃圾邮件。有人要求我丢弃发往此地址的所有邮件,除非这些邮件来自此系统将中继邮件的计算机之一。

我知道我可以用 procmail 来做这件事,但我更愿意将它与 sendmail 绑定,这样不合格的电子邮件将在 MTA 级别被彻底拒绝。我不知道如何让 sendmail 做到这一点(或者这是否可能)。

我已使用以下设置配置了 sendmail:

FEATURE(`access_db', `hash -T<TMPF> -o /etc/mail/access.db')`
FEATURE(`blacklist_recipients')

/etc/mail/access包含:

example.com              RELAY
connect:192.168.15       OK
to:[email protected]  REJECT

我正在/etc/mail/access.db通过生成makemap hash /etc/mail/access.db </etc/mail/access

但是,当我尝试使用该配置时,即使是本地机器在尝试发送到内部地址时也会收到消息。550 5.2.1 <[email protected]>... Mailbox disabled for this recipient

我可以配置 sendmail 来执行我想要的操作吗?如果可以,该如何配置?

答案1

抱歉,我不想冒犯您,但这是您的 /etc/mail/access.db 的确切内容吗?

example.com              RELAY    
connect:192.168.15       OK    
to:[email protected]  REJECT

因为它应该是一个哈希映射。上面应该是你的 /etc/mail/access 的内容。然后将其编译为一个映射:makemap hash /etc/mail/access.db < /etc/mail/access

相关内容