Postfix + SpamAssassin:传入邮件标头发生更改

TCB13

我按照大多数网站推荐的此类OS设置说明进行了Postfix + SpamAssassin设置。基本上,我编辑了master.cf要添加的内容:

smtp      inet  n       -       -       -       -       smtpd -o content_filter=spamassassin

spamassassin unix -     n       n       -       -       pipe
        user=debian-spamd argv=/usr/bin/spamc -f -e  
        /usr/sbin/sendmail -oi -f ${sender} ${recipient}

SpamAssassin实际上工作正常,并且我的电子邮件已被过滤,但是我注意到了以下内容。过去,在SpamAssassin发送电子邮件给我的服务器之前,标头显示如下:

Return-path: <[email protected]>
Envelope-to: <[email protected]>
Delivery-date: Wed, 02 Dec 2015 12:37:13 +0100
Received: from mail.sender-server.dev ...
    by mail.my-server.dev

在SpamAssassin之后,他们显示:

Return-path: <[email protected]>
Envelope-to: <[email protected]>
Delivery-date: Wed, 02 Dec 2015 12:37:13 +0100
Received: from mail.my-server.dev ...
    by mail.my-server.dev

看起来好像是在启用SpamAssassin时,Received: from它已从原来的服务器更改为真正从电子邮件发送到我自己的服务器...为什么会发生这种情况?无法以显示正确标题过滤我的电子邮件的方式解决此问题吗?谢谢你。

TCB13

经过@tarleb的研究和帮助,这是我的最终解决方案

我的邮件传递是通过sendmail程序进行的,该程序向我的电子邮件中添加了一些其他标题。我可以使用发送邮件过滤器(mitter)来过滤传入的电子邮件并删除sendmail使用情况,但是我决定改用Dovecot LDA进行发送。

我最初的过滤器是在Postfix的开头master.cf

smtp      inet  n       -       -       -       -       smtpd -o content_filter=spamassassin

并在文件末尾:

spamassassin unix -     n       n       -       -       pipe
        user=debian-spamd argv=/usr/bin/spamc -f -e  
        /usr/sbin/sendmail -oi -f ${sender} ${recipient}

我通过以下方式更改了文件的末尾以使用Dovecot本地交付:

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} 

现在编辑Postfixmain.cf并添加(可选,请在下面选择(3)):

spamassassin_destination_recipient_limit = 1

现在,您的电子邮件将通过Dovecot LDA传递而无需更改标题。对于好奇的人,以下是我的配置中的一些详细信息:

  1. 配置可以与加地址/子地址/收件人定界符(发给的电子邮件[email protected]将被发送到[email protected]收件箱)一起使用-这就是为什么我添加了-d ${user}@${nexthop}此操作将删除+和直到域的所有内容。要启用此功能,还请确保添加recipient_delimiter = +main.cf;中。
  2. 我的标志flags=DROhu,它们没有添加任何异常,但是可以在此处理解:http : //www.postfix.org/pipe.8.html ;
  3. spamassassin_destination_recipient_limit = 1需要确保每个接收者都得到spamassassin的单独处理。由于D上面标志(包括X-Original-To标头),因此这是必需的如果您有D标志并且没有设置spamassassin_destination_recipient_limit = 1多个目的地的电子邮件,则不会发送!如果您不关心此标头,则可以删除该标志,并且不需要此标志。

编辑:奖励内容-将您的SPAM移至该Junk文件夹!

您还可以配置Dovecot将检测为垃圾邮件的电子邮件移动到JunkIMAP文件夹。这肯定会使您的生活更轻松。只需遵循以下步骤:

  1. 编辑/etc/dovecot/conf.d/15-mailboxes.conf并取消注释/添加Junk文件夹(应namespace inbox位于旁边部分mailbox Trash):

    mailbox Junk {
       special_use = \Junk
    }
    
  2. dovecot-sieveapt-get install dovecot-sieve;安装;

  3. 编辑/etc/dovecot/conf.d/90-sieve.conf并注释该行:#sieve = ~/.dovecot.sieve

  4. 修改/etc/dovecot/conf.d/90-plugin.conf为:

    plugin {
        sieve = /etc/dovecot/sieve/default.sieve
    }
    
  5. 编辑/etc/dovecot/conf.d/15-lda.conf/etc/dovecot/conf.d/20-lmtp.conf匹配:

    protocol lda/lmtp { # do not copy/paste this line!
      mail_plugins = $mail_plugins sieve
    }
    

    警告:您可能在protocol选择项下还有其他设置,请保留它们。protocol lda/lmtp文件中的行发生更改,请保留原始文件。

  6. 创建文件夹 /etc/dovecot/sieve/

  7. 创建/etc/dovecot/sieve/default.sieve具有以下内容的文件

    require "fileinto";
    if header :contains "X-Spam-Flag" "YES" {
        fileinto "Junk";
    }
    
  8. 将文件夹权限更改为您的虚拟电子邮件用户和组,例如:chown vmail:vmail /etc/dovecot/sieve/ -R如果您错过了此鸽舍,将会抱怨!

  9. 重新启动所有内容: service postfix restart; service dovecot restart; service spamassassin restart

  10. 尝试将电子邮件发送到服务器上的某些电子邮件(来自外部服务器),首先发送一封普通电子邮件,然后再发送一封与此主题有关的电子邮件:XJS*C4JDBQADN1.NSBN3*2IDNEN*GTUBE-STANDARD-ANTI-UBE-TEST-EMAIL*C.34X第二封电子邮件应发送到该Junk文件夹,第一封电子邮件应发送到您的收件箱。

如果您初次尝试无法解决问题,请查看日志:tail -f /var/log/mail.log,然后在tail运行时发送电子邮件良好的工作环境应报告stored mail into mailbox 'INBOX'stored mail into mailbox 'Junk'

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

邮件被Postfix / Spamassassin卡在queueu中

来自分类Dev

在postfix中,如何禁用传入邮件?

来自分类Dev

Postfix邮件配置的常规类型

来自分类Dev

在Postfix中更改smtps端口

来自分类Dev

Postfix中的字段如何更改

来自分类Dev

将SpamAssassin集成到Postfix中

来自分类Dev

使用PHP,LAMPP和PostFix发送邮件

来自分类Dev

使用PHP,LAMPP和PostFix发送邮件

来自分类Dev

监视Postfix外发邮件传递

来自分类Dev

Postfix错误:尚未授权传递邮件

来自分类Dev

无法正确存储Postfix输出邮件格式

来自分类Dev

无法正确存储Postfix输出邮件格式

来自分类Dev

postfix在哪里存储电子邮件?

来自分类Dev

Ubuntu Postfix sendgrid未知邮件传输错误

来自分类Dev

postfix + dovecot配置,未收到邮件

来自分类Dev

Postfix for BCC发送电子邮件?

来自分类Dev

Postfix:更改发送方和中继主机

来自分类Dev

为什么以这种方式设置postfix-spamassassin-dovecot?

来自分类Dev

Postfix Header_Checks拒绝合法邮件(CnetOS 7 + Postfix 2.10.1)

来自分类Dev

fetchmail / postfix-如果邮件太大,则退回邮件

来自分类Dev

Postfix电子邮件TLS标头,但未为gmail加密

来自分类Dev

如何获取或捕获由postfix发送的电子邮件正文和标头

来自分类Dev

使用Postfix转发电子邮件时从标头重写

来自分类Dev

使用Postfix通过Java发送电子邮件

来自分类Dev

您如何配置Django通过Postfix发送邮件?

来自分类Dev

使用Postfix配置通配符所有电子邮件

来自分类Dev

使用python和postfix发送符合VERP的电子邮件

来自分类Dev

如何在Postfix中为跳出邮件启用DKIM

来自分类Dev

Postfix Masquarade名称*和*电子邮件地址