是否有任何过滤器可以让我在邮件标头中同时包含纯文本或 HTML 文本正文摘要(预览)?就像 SpamAssassin 处理垃圾邮件一样(它插入带有内容预览部分的 X-Spam-Report 标头),但更灵活/可配置,并且适用于所有类型的邮件,而不仅仅是垃圾邮件。
我想以 Gmail 的方式显示邮件列表,这样主题后面就是文本正文的第一行(如果正文是 HTML,则此文本行应删除 HTML 标签等)。虽然可以通过许多相当复杂的 IMAP 查询来实现这一点,但我更愿意保持简单,例如获取标头值。
或者,也许 spamassassin 本身可以为此进行配置?
答案1
如果您可以配置 SpamAssassin 以将预览放入其垃圾邮件报告中,则使用 exim 的 ACL 系统将该预览放入每封邮件中,而不仅仅是垃圾邮件中。我的意思是不要根据分数放入报告,而是将报告放入每封邮件中,并且只拒绝如果分数高于您的最高阈值。下面是我如何操作的一个例子:
# Always add X-Spam-Score and X-Spam-Report headers
# using SA system-wide settings (user "exim")
# no matter if over threshold or not.
warn condition = ${if >{$message_size}{500K}{no}{yes}}
!authenticated = *
spam = exim:true
add_header = X-Spam-Score: $spam_score
add_header = X-Spam-Report: $spam_report
message = X-Spam-Score: $spam_score\n\
X-Spam-Report: $spam_report
# Add X-Spam-Flag if spam is over system-wide threshold
warn condition = ${if >{$message_size}{500K}{no}{yes}}
!authenticated = *
message = X-Spam-Flag: Yes
spam = exim
add_header = X-Spam-Flag: Yes
# Reject spams with score over 6
deny condition = ${if >{$message_size}{500K}{no}{yes}}
!authenticated = *
message = This message scored $spam_score points. Rejected.
spam = exim:true
condition = ${if >{$spam_score_int}{60}{1}{0}}
对于您来说,您需要在 local.cf 中添加 _ PREVIEW _ display 标志来创建名为 X-Spam-Content-Preview 的标头:
add_header all Content-Preview _PREVIEW_
然后配置您的应用程序来查找并显示该标题。