Почему сито ведет себя странно в строке темы base64?

#email #base64 #sieve

#Адрес электронной почты #base64 #решетка

Вопрос:

Я пытаюсь отфильтровать сообщение с помощью сита по строке темы:

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

Этот фильтр отбрасывает сообщение:

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

но это (или что-то более сложное) не:

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

Почему Сито считает, что строка темы содержит 0 , но не L содержит? Есть ли что-то фундаментальное, чего мне не хватает в сите и base64?

Ответ №1:

Сценарии сита будут декодировать Subject заголовок в фактическую строку, понятную для человека, прежде чем тестировать их. Итак, ваш код проверяет 0 / L против Электронный чек по заказу 16934019-0086 , нет =?utf-8?B?...?= . (Строго говоря, текст темы прерывается в неправильном месте)

RFC5703 2.4.2.2

Интерпретация данных заголовка ДОЛЖНА выполняться в соответствии с разделом 6.2 [MIME3] (подробности см. В разделе 2.7.2 ниже).

[MIME3] Мур К., «MIME (многоцелевые расширения интернет-почты) Часть третья: Расширения заголовка сообщения для текста, отличного от ASCII», RFC 2047, ноябрь 1996.