为什么 Sieve 在 base64 主题行上表现异常?

Why does Sieve behave strangely on a base64 subject line?

我正在尝试让 Sieve 按主题行过滤邮件:

Subject: =?utf-8?B?0K3Qu9C10LrRgtGA0L7QvdC90YvQuSDRh9C10Log0L/QviDQ?=
 =?utf-8?B?t9Cw0LrQsNC30YMgMTY5MzQwMTktMDA4Ng==?=

此过滤器确实丢弃了消息:

if header :contains "Subject" "0"
{
    discard;
}

但是这个(或任何更复杂的)没有:

if header :contains "Subject" "L"
{
    discard;
}

为什么 Sieve 认为主题行包含 0 而不是 L?关于 Sieve 和 base64,我是否缺少一些基本的东西?

Sieve 脚本会在测试之前将 Subject header 解码为实际的 human-readable 字符串。因此,您的代码针对 Электронный чек по заказу 16934019-0086 而不是 =?utf-8?B?...?= 测试 0/L。 (严格来说,主题文本在错误的地方中断)

RFC5703 2.4.2.2

Interpretation of header data SHOULD be done according to [MIME3] section 6.2 (see section 2.7.2 below for details).

[MIME3] Moore, K., "MIME (Multipurpose Internet Mail Extensions) Part Three: Message Header Extensions for Non-ASCII Text", RFC 2047, November 1996.