为什么 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
。 (严格来说,主题文本在错误的地方中断)
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.
我正在尝试让 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
。 (严格来说,主题文本在错误的地方中断)
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.