#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?...?=
. (Строго говоря, текст темы прерывается в неправильном месте)
Интерпретация данных заголовка ДОЛЖНА выполняться в соответствии с разделом 6.2 [MIME3] (подробности см. В разделе 2.7.2 ниже).
[MIME3] Мур К., «MIME (многоцелевые расширения интернет-почты) Часть третья: Расширения заголовка сообщения для текста, отличного от ASCII», RFC 2047, ноябрь 1996.