Roundcubemail+Sieve环境下如何检测邮件附件?求解决方案
解决Roundcubemail + Sieve检测邮件附件并自动归档的问题
一、用Sieve脚本精准检测附件
你之前的过滤失效,是因为普通的头匹配只查邮件顶级头,而附件的Content-Disposition属于MIME子部分的头;正文匹配也抓不到附件相关内容——因为附件不在文本正文区域里。
Dovecot的Sieve支持vnd.dovecot.mime扩展,能直接检测MIME子部分的属性,写个脚本就能解决:
首先确认Dovecot启用了vnd.dovecot.mime扩展(通常默认开启,可在/etc/dovecot/conf.d/90-sieve.conf里查看sieve_extensions是否包含该条目)。
然后创建或修改你的Sieve脚本(一般路径是~/.dovecot.sieve):
require ["fileinto", "vnd.dovecot.mime"]; # 匹配所有带附件的邮件,可根据需求调整规则 if anyof( # 匹配常见的附件类型(可选,可根据需要增减) mime :contenttype "application/*", mime :contenttype "image/*", mime :contenttype "audio/*", mime :contenttype "video/*", # 直接匹配标记为attachment的MIME部分(最准确) mime :disposition "attachment" ) { fileinto "附件归档"; # 替换成你的目标文件夹 }
保存后,用sievec ~/.dovecot.sieve编译脚本,或者重启Dovecot生效。如果Roundcube的Sieve编辑器支持输入自定义脚本(高级模式),也可以直接在里面粘贴这段代码。
二、Roundcubemail的替代方案
如果不想手动写Sieve脚本,可尝试以下方法:
- 用Roundcube的
managesieve插件高级模式:进入Roundcube的设置→过滤器,切换到高级模式,直接输入上述Sieve代码。 - 安装适配的Roundcube插件:比如
filtration插件,部分版本支持可视化配置附件过滤规则,不过要注意插件与当前Roundcube版本的兼容性。
内容的提问来源于stack exchange,提问作者TimB
相关产品推荐
相关产品推荐

