Better way to handle encoded description

pull/16/head
Alex Puiu 2022-02-11 11:49:49 +02:00
rodzic dfe2a048d3
commit fa3d1eace0
2 zmienionych plików z 21 dodań i 2 usunięć

19
functions.php 100644
Wyświetl plik

@ -0,0 +1,19 @@
<?php
function decodeIfNeeded($data) {
$descarray = explode(" ", $data);
$wEncoded = 0;
foreach($descarray as $word) {
if(base64_encode(base64_decode($word)) == $word) {
$wEncoded++;
}
}
if($wEncoded >= count($descarray) - 1) {
$data = base64_decode($data);
}
return $data;
}
?>

Wyświetl plik

@ -1,6 +1,7 @@
<?php
error_reporting(E_ERROR | E_PARSE);
require_once("config.php");
require_once("functions.php");
require_once('lib/DeckClass.php');
require_once('lib/MailClass.php');
@ -75,8 +76,7 @@ if ($emails)
} else {
$description = DECODE_SPECIAL_CHARACTERS ? quoted_printable_decode($inbox->fetchMessageBody($emails[$j], 1)) : $inbox->fetchMessageBody($emails[$j], 1);
}
if(base64_encode(base64_decode($description)) == $description) // if description is base64 encoded, decode it
$description = base64_decode($description);
$description = decodeIfNeeded($description);
$data->description = $description;
$mailSender = new stdClass();
$mailSender->userId = $overview->from[0]->mailbox;