У меня тоже была эта проблема, и я предложил альтернативный маршрут, чтобы решить эту проблему.Для тех, кто смотрит в будущее, это может быть полезно.
Я собрал этот код вместе, как только понял, какая часть сообщения на самом деле является частью строки Base64;
if(stripos($subject, "=?utf-8?b?") !== false) {
$output = str_ireplace("=?utf-8?B?", "", $subject);
$output = str_replace("==?=", "", $output);
$output = base64_decode($output);
}else{
$output = $subject;
}
Эффективно то, что вы делаете, это обнаруживает, что строка находится на лице base64.а затем обрезать идентификаторы перед декодированием с помощью base64_decode()
. Убедитесь, что вы используете регистрозависимые версии строковых функций, поскольку не все почтовые провайдеры придерживаются верхнего или нижнего регистра.Извините, что отвечаю на старый вопрос, но я нашел это более полезной альтернативой.