postfix-mta - 如何将垃圾邮件移至垃圾邮件文件夹?

标签 postfix-mta mail-server spam-prevention spamassassin

关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。












想改进这个问题?将问题更新为 on-topic对于堆栈溢出。

5年前关闭。




Improve this question




我已经在我的 centos 5.10 上安装了 postfix、dovecot、Clamav、Spamassassin 和 amavisd-new。
教程在这里:http://catatanlepas.com/komputer/aplikasi/server-mail/postfix/359-instalasi-postfix-menggunakan-dovecot-di-centos-5-5

我只是没有在该教程中安装 Razor、Pyzor、dan DCC。

在/var/log/maillog 中一切正常,如果有垃圾邮件没有进入收件箱,但我想将垃圾邮件移动到垃圾邮件文件夹。

我的问题是:
1. 如何在我的网络邮件上自动创建垃圾邮件文件夹,因为它只是创建收件箱、草稿和已发送邮件,我的网络邮件上没有垃圾邮件文件夹。
2. 如何将垃圾邮件移动到每个用户的垃圾邮件文件夹(我在/var/vmail 上创建用户)

请帮助我,我在谷歌搜索了 5 天,我对此很感兴趣:(

谢谢你。

最佳答案

I - 将您的电子邮件发送设置为使用 Dovecot LDA:

OP 链接的原始网站处于离线状态,但我相信电子邮件传递发生在 sendmail程序,它应该通过 Dovecot LDA 完成,以满足您的需要。 (为了避免电子邮件来源标题更改)。

编辑 Postfix 的 master.cf (开头):

smtp      inet  n       -       -       -       -       smtpd -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} 

现在编辑 Postfix 的 main.cf并添加(可选,检查(3)波纹管):
spamassassin_destination_recipient_limit = 1

现在您的电子邮件将通过 Dovecot LDA 发送,无需更改标题。对于好奇的人,这里有一些关于我的配置的细节:
  • 这个 config 可以与加地址/子地址/收件人分隔符一起使用 (发送至 user+nospam@example.com 的电子邮件将被发送到 user@example.com 收件箱) - 这就是我添加 -d ${user}@${nexthop} 的原因这将删除 +以及直到域的所有内容。要启用此功能,请务必添加 recipient_delimiter = +进入 main.cf ;
  • 我的旗帜 flags=DROhu ,它们没有添加任何异常但可以在这里理解:http://www.postfix.org/pipe.8.html ;
  • spamassassin_destination_recipient_limit = 1需要确保每个收件人都被 spamassassin 单独处理。这是必需的,因为 D上面的标志(包括 X-Original-To header )。如果您不关心此 header ,则可以删除该标志,这不是必需的。

  • II - 将您的垃圾邮件移至 Junk文件夹:

    (在@Electronic Technologies 的帮助下 https://stackoverflow.com/a/32470349/560745 )

    您还可以将 Dovecot 配置为将检测为垃圾邮件的电子邮件移至 Junk IMAP 文件夹。请按照以下说明操作:
  • 编辑 /etc/dovecot/conf.d/15-mailboxes.conf并取消注释/添加 Junk文件夹(应位于 namespace inbox 附近的 mailbox Trash 部分):
    mailbox Junk {
       special_use = \Junk
    }
    
  • 安装 dovecot-sieveapt-get install dovecot-sieve ;
  • 编辑 /etc/dovecot/conf.d/90-sieve.conf并评论该行:#sieve = ~/.dovecot.sieve
  • 编辑 /etc/dovecot/conf.d/90-plugin.conf作为:
    plugin {
        sieve = /etc/dovecot/sieve/default.sieve
    }
    
  • 编辑 /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文件改动,保留原件。
  • 创建文件夹/etc/dovecot/sieve/
  • 创建文件/etc/dovecot/sieve/default.sieve包含以下内容:
    require "fileinto";
    if header :contains "X-Spam-Flag" "YES" {
        fileinto "Junk";
    }
    
  • 将文件夹权限更改为您的虚拟电子邮件用户和组,例如:chown vmail:vmail /etc/dovecot/sieve/ -R .如果你错过了这个鸽舍会提示!
  • 重启一切:service postfix restart; service dovecot restart; service spamassassin restart
  • 尝试向服务器上的某些电子邮件(从外部服务器)发送电子邮件,首先是普通电子邮件,然后是另一个具有以下主题的电子邮件: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' .

    关于postfix-mta - 如何将垃圾邮件移至垃圾邮件文件夹?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24256008/

    相关文章:

    linux - SendMail 错误消息 : 553 5. 1.8 ... 发件人地址的域 ... 不存在

    mysql - 检测重复的帖子

    artificial-intelligence - 用人工智能防止垃圾邮件

    email - 如何设置我的 Ubuntu VPS 以发送外发邮件?

    PHP mail() 不发送邮件

    python - 将 postfix 邮件集成到我的(python)webapp

    java - 如何用 Java 发送电子邮件?

    在 clojure 测试中测试邮件服务器

    certificate - 邮件服务器上的 SSL 证书是否会降低电子邮件被分类为垃圾邮件的可能性?

    iis - 如何在IIS上阻止Semalt