Email 筛滤器未运行
我正在尝试自动将检测为垃圾邮件的邮件移动到垃圾邮件文件夹,但我的筛选过滤器未运行。 我可以发送和接收邮件,邮件被检测为垃圾邮件Email 筛滤器未运行,email,postfix-mta,dovecot,sieve,lmtp,Email,Postfix Mta,Dovecot,Sieve,Lmtp,我正在尝试自动将检测为垃圾邮件的邮件移动到垃圾邮件文件夹,但我的筛选过滤器未运行。 我可以发送和接收邮件,邮件被检测为垃圾邮件 X-Virus-Scanned: amavisd-new at ... X-Spam-Flag: YES X-Spam-Score: 999.802 X-Spam-Level: **************************************************************** X-Spam-Status: Yes, score=999.80
X-Virus-Scanned: amavisd-new at ...
X-Spam-Flag: YES
X-Spam-Score: 999.802
X-Spam-Level: ****************************************************************
X-Spam-Status: Yes, score=999.802 tagged_above=-999 required=5
tests=[DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1,
DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, GTUBE=1000,
HTML_MESSAGE=0.001, SPF_PASS=-0.001, TVD_SPACE_RATIO=0.001]
autolearn=no autolearn_force=no
我想问题是,postfix不通过dovecot发送邮件,但我不明白为什么
我的系统:
- ArchLinux
- 后缀3.3.2-3
- 多佛科特2.3.4.1-1
- 安装了一个孔
- dovecot lmtp套接字存在于/var/spool/postfix/private中,可对postfix进行读写
- postfix main.cf中的虚拟_传输设置为lmtps:unix:private/dovecot lmtp
- dovecot.conf中存在lmtp服务和协议块,协议值包含lmtp
- 全局筛选脚本的路径似乎是正确的
- 筛选脚本正在编译,没有错误
- 存在文件夹垃圾
- 即使设置了mail_debug=yes,Dovecot也不会记录与lmtp相关的任何内容
...
lmtps unix - - - - - lmtp
-o lmtp_use_tls=yes
-o lmtp_tls_loglevel=1
-o lmtp_tls_CAfile=/etc/ssl/certs/ca-certificates.crt
-o lmtp_enforce_tls=yes
-o lmtp_tls_mandatory_protocols=!SSLv2,!SSLv3
-o lmtp_tls_protocols=!SSLv2,!SSLv3
-o lmtp_tls_mandatory_ciphers=high
-o lmtp_tls_ciphers=high
-o lmtp_send_xforward_command=yes
-o lmtp_tls_security_level=encrypt
-o lmtp_tls_note_starttls_offer=yes
...
...
virtual_transport = lmtps:unix:private/dovecot-lmtp
...
dovecot.conf:
...
protocols = imap lmtp sieve
...
service managesieve-login {
inet_listener sieve {
port = 4190
}
service_count = 1
process_min_avail = 2
vsz_limit = 128M
}
service managesieve {
process_limit = 256
}
service lmtp {
unix_listener /var/spool/postfix/private/dovecot-lmtp {
group = postfix
mode = 0600
user = postfix
}
user = vmail
}
...
protocol lmtp {
mail_plugins = quota sieve acl notify
auth_socket_path = /var/run/dovecot/auth-master
postmaster_address = ...
}
protocol sieve {
managesieve_max_line_length = 65536
mail_max_userip_connections = 10
mail_plugins =
managesieve_logout_format = bytes=%i/%o
managesieve_implementation_string = Dovecot Pigeonhole
managesieve_sieve_capability =
managesieve_notify_capability =
managesieve_max_compile_errors = 5
}
...
plugin {
...
sieve_extensions = +spamtest
sieve_spamtest_status_type = score
sieve_spamtest_status_header = \
X-Spam_score: (-?[[:digit:]]+\.[[:digit:]]).*
sieve_spamtest_max_value = 5.0
# Own sieve filters are located in the home directory
sieve = file:~/sieve;active=~/.dovecot.sieve
# The global filter is located outside
sieve_before = /var/lib/dovecot/sieve/move_to_spam_folder.sieve
sieve_max_script_size = 1M
sieve_quota_max_scripts = 0
sieve_quota_max_storage = 0
# Continue even if the quota can not be determined
# Valid for the Postfix policy service provided from Dovecot
quota_status_success = DUNNO
quota_status_nouser = DUNNO
quota_status_overquota = "552 5.2.2 Mailbox is over quota"
sieve_plugins = sieve_imapsieve sieve_extprograms
# From elsewhere to Spam folder
imapsieve_mailbox1_name = Junk
imapsieve_mailbox1_cause = COPY
imapsieve_mailbox1_before = file:/var/lib/dovecot/sieve/report-spam.sieve
# From Spam folder to elsewhere
imapsieve_mailbox2_name = *
imapsieve_mailbox2_from = Junk
imapsieve_mailbox2_cause = COPY
imapsieve_mailbox2_before = file:/var/lib/dovecot/sieve/report-ham.sieve
sieve_pipe_bin_dir = /var/lib/dovecot/sieve
sieve_global_extensions = +vnd.dovecot.pipe +vnd.dovecot.environment
}
最后,全局筛选脚本:
require "fileinto";
if header :contains "X-Spam-Flag" "YES" {
fileinto "Junk";
}
指向全局筛选脚本链接的位置<代码>插件{sieve\u global\u path=/path/to/default.sieve}嘿!非常感谢您的回复。我没有这个参数,因为它已经去润滑,现在由参数'sieve_before=/path/to/a/global.sieve'和'sieve_after=/path/to/global.sieve'处理。此脚本应在用户定义的筛选脚本运行之前和之后运行:指向全局筛选脚本链接的位置<代码>插件{sieve\u global\u path=/path/to/default.sieve}嘿!非常感谢您的回复。我没有这个参数,因为它已经去润滑,现在由参数'sieve_before=/path/to/a/global.sieve'和'sieve_after=/path/to/global.sieve'处理。此脚本应在用户定义的筛选脚本运行之前和之后运行:
require "fileinto";
if header :contains "X-Spam-Flag" "YES" {
fileinto "Junk";
}