Dovecot/Postfix 使用 spamassassin 转发不起作用(状态=退回(用户未知))

Dovecot/Postfix 使用 spamassassin 转发不起作用(状态=退回(用户未知))

在 Debian 10 上,我已经设置了 Dovecot 和 Postfix,并且 Spamassassin 运行正常,但是当我尝试设置使用虚拟别名转发到远程电子邮件时,消息会被退回。

我尝试了用户 Blaatpratt 在此主题中提出的两个建议,但都无法奏效Postifx - Dovecot 无法发送电子邮件“状态=退回(用户未知)”。对我来说,如果可以让它工作的话,这似乎是最好的选择,因为它不需要我安装任何其他软件。

在这个例子中,mymaindomain.com 和 mydomain.com 都在运行 dovecot 的服务器上,但 remoteemail.com 托管在其他地方。

启用 spamassassin 后,我的 postfix master.cf 如下所示:

主配置文件

smtp      inet  n       -       n       -       -       smtpd
  -o content_filter=spamassassin
#smtp      inet  n       -       -       -       1       postscreen
#smtpd     pass  -       -       -       -       -       smtpd
#dnsblog   unix  -       -       -       -       0       dnsblog
#tlsproxy  unix  -       -       -       -       0       tlsproxy
submission inet n       -       y      -       -       smtpd
  -o syslog_name=postfix/submission
  -o smtpd_tls_security_level=encrypt
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_sasl_type=dovecot
  -o smtpd_sasl_path=private/auth
  -o smtpd_reject_unlisted_recipient=no
  -o smtpd_client_restrictions=permit_sasl_authenticated,reject
  -o milter_macro_daemon_name=ORIGINATING
  -o content_filter=spamassassin
smtps     inet  n       -       -       -       -       smtpd
  -o syslog_name=postfix/smtps
  -o smtpd_tls_wrappermode=yes
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_sasl_type=dovecot
  -o smtpd_sasl_path=private/auth
  -o smtpd_client_restrictions=permit_sasl_authenticated,reject
  -o milter_macro_daemon_name=ORIGINATING
  -o content_filter=spamassassin

...

spamassassin unix -     n   n   -   -   pipe
    flags=DROhu user=vmail:vmail argv=/usr/bin/spamc -f -e 
    /usr/lib/dovecot/deliver -f ${sender} -d ${user}@${nexthop}

如果我按照如下方式完全删除 spamassassin,转发就会再次起作用。

smtp       inet  n       -       y       -       -       smtpd
smtps      inet  n       -       y       -       -       smtpd
submission inet  n       -       y       -       -       smtpd

以下是传输过程中/var/log/mail.log的输出:

Aug 28 19:30:28 localhost postfix/smtpd[8332]: connect from mail-lf1-x135.google.com[2a00:1450:4864:20::135]
Aug 28 19:30:29 localhost postfix/smtpd[8332]: 33F5A44818: client=mail-lf1-x135.google.com[2a00:1450:4864:20::135]
Aug 28 19:30:29 localhost postfix/cleanup[8337]: 33F5A44818: message-id=<[email protected]>
Aug 28 19:30:29 localhost postfix/qmgr[15254]: 33F5A44818: from=<[email protected]>, size=2832, nrcpt=1 (queue active)
Aug 28 19:30:29 localhost spamd[13839]: spamd: connection from ::1 [::1]:51484 to port 783, fd 5
Aug 28 19:30:29 localhost spamd[13839]: spamd: setuid to vmail succeeded
Aug 28 19:30:29 localhost spamd[13839]: spamd: processing message <[email protected]> for vmail:5000
Aug 28 19:30:29 localhost postfix/smtpd[8332]: disconnect from mail-lf1-x135.google.com[2a00:1450:4864:20::135] ehlo=2 starttls=1 mail=1 rcpt=1 bdat=1 quit=1 commands=7
Aug 28 19:30:29 localhost spamd[13839]: spamd: clean message (-0.2/5.0) for vmail:5000 in 0.1 seconds, 2887 bytes.
Aug 28 19:30:29 localhost spamd[13839]: spamd: result: . 0 - DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,SPF_PASS scantime=0.1,size=2887,user=vmail,uid=5000,required_score=5.0,rhost=::1,raddr=::1,rport=51484,mid=<[email protected]>,autolearn=ham autolearn_force=no
Aug 28 19:30:29 localhost postfix/pipe[8338]: 33F5A44818: to=<[email protected]>, orig_to=<[email protected]>, relay=spamassassin, delay=0.17, delays=0.01/0/0/0.16, dsn=5.1.1, status=bounced (user unknown)
Aug 28 19:30:29 localhost postfix/cleanup[8337]: 5C38F4482F: message-id=<[email protected]>
Aug 28 19:30:29 localhost postfix/qmgr[15254]: 5C38F4482F: from=<>, size=4645, nrcpt=1 (queue active)
Aug 28 19:30:29 localhost postfix/bounce[8343]: 33F5A44818: sender non-delivery notification: 5C38F4482F
Aug 28 19:30:29 localhost postfix/qmgr[15254]: 33F5A44818: removed
Aug 28 19:30:29 localhost spamd[13838]: prefork: child states: II
Aug 28 19:30:29 localhost postfix/smtp[8344]: 5C38F4482F: to=<[email protected]>, relay=gmail-smtp-in.l.google.com[64.233.184.27]:25, delay=0.33, delays=0/0/0.08/0.24, dsn=2.0.0, status=sent (250 2.0.0 OK  1567020629 n6si222998wmi.24 - gsmtp)
Aug 28 19:30:29 localhost postfix/qmgr[15254]: 5C38F4482F: removed

以下是 dovecot -n 的输出

https://pastebin.com/QwHx891B

**这是 postconf -n 的输出**

https://pastebin.com/2n3g9xh5

有人能看出或知道哪里出了问题吗?请帮忙,我将不胜感激。根据我对 master.cf 末尾配置的理解,dovecot 负责将邮件发送到转发地址,因为 dovecot 配置为使用 自动将垃圾邮件保存到垃圾邮件文件夹sieve。我能否以某种方式让 dovecot 知道我安装的 SQL 数据库中别名表中的主机?

答案1

我遇到过类似的问题。问题实际上是,作为本地交付代理 (LDA) 的 dovecot 不知道 /etc/aliases。因此,我决定将自己的 LDA 实现为一个简单的 shell 脚本。您可以使用我的脚本作为满足您需求的框架。请参阅我的问题和答案这里别忘了给我的答案评分。

相关内容