我如何告诉Postfix放松smtpd_sender_restrictions?

如果我使用SSL连接到端口143上的邮件客户端上的Postfix,则通过此连接从虚拟域发送的邮件将通过smtpd_sender_restrictions ,从而启用将其路由到amavis以在传输之前添加其DKIM签名的筛选器。

到目前为止这么好,但…

但是,如果我使用与上面相同的用户@ virtual_domain生成一封电子邮件,那么直接从Drupal(或运行authentication用户的Roundcube)运行在与Postfix相同的服务器上,则该电子邮件不会通过smtpd_sender_restrictions ,从而没有得到amavis,并得到其DKIM签署。

我该怎么做,以允许我的本地(编程生成)的电子邮件通过smtpd_sender_restrictions ? 在手册中我可以看到没有条件可以添加到规则来放松它? 这是我在/etc/postfix/main.cf使用的规则:

  ################## # SASL Settings and DKIM Settings # See http://gogs.info/books/debian-mail/chunked/postfix.sasl.html # See http://gogs.info/books/debian-mail/chunked/antispam.dkim.html ################## smtpd_sender_restrictions = # If mail is coming from mynetwork or from authenticated users use amavis filtering on port 10026 (DKIM signing) check_sender_access regexp:/etc/postfix/amavis/tag_as_originating.re permit_mynetworks permit_sasl_authenticated permit_tls_clientcerts # For other mail use amavis filtering on port 10024 (skips DKIM signing) check_sender_access regexp:/etc/postfix/amavis/tag_as_foreign.re 

我使用Post Adminpipe理多个虚拟域,并在此列出允许的发件人:

  virtual_mailbox_domains = mysql:/etc/postfix/sql/virtual_domains_maps.cf 

我有smtpd_recipient_restrictions来防止任意打开中继。

在我的Exim MTA上,我签署了每封邮件。 我可以看到Postfix的smtpd_sender_resrictions的点,但我似乎无法让他们做我想在这里。

我能够通过pickup队列将消息引导到端口10026上的amavis,让他们对DKIM进行签名。

这些消息是由我的服务器上的Drupal网站(由我信任)以及用户login到其Roundcubenetworking邮件生成的。

我只是将这两个参数添加到/etc/postfix/master.cf的现有pickup传输中:

  pickup fifo n - - 60 1 pickup -o smtpd_tls_security_level=encrypt -o content_filter=smtp-amavis:[127.0.0.1]:10026 

(感谢blog.purrdeta.com指针)

传输smtp-amavis已经在master.cf定义了,并且被通过smtpd队列master.cf的消息使用。

我花了一段时间才意识到这些消息是通过拾取队列进入的,因此不会受到我原来问题中的smtpd_sender_restrictions 。 为了实现这个错误,我必须感谢Postfix体系结构的非常清晰的解释 。