mirror of
https://github.com/the-djmaze/snappymail.git
synced 2026-07-13 03:27:39 +03:00
cleanup mime header encoding handling
This commit is contained in:
parent
4d9fb41d73
commit
8749d189df
6 changed files with 8 additions and 11 deletions
|
|
@ -21,7 +21,6 @@ abstract class Encoding
|
||||||
const QUOTED_PRINTABLE_LOWER = 'quoted-printable';
|
const QUOTED_PRINTABLE_LOWER = 'quoted-printable';
|
||||||
const QUOTED_PRINTABLE_SHORT = 'Q';
|
const QUOTED_PRINTABLE_SHORT = 'Q';
|
||||||
|
|
||||||
const BASE64 = 'Base64';
|
|
||||||
const BASE64_LOWER = 'base64';
|
const BASE64_LOWER = 'base64';
|
||||||
const BASE64_SHORT = 'B';
|
const BASE64_SHORT = 'B';
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -356,7 +356,10 @@ abstract class Utils
|
||||||
return $sResultHeaders;
|
return $sResultHeaders;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function EncodeUnencodedValue(string $sEncodeType, string $sValue) : string
|
/**
|
||||||
|
* https://datatracker.ietf.org/doc/html/rfc2047
|
||||||
|
*/
|
||||||
|
public static function EncodeHeaderValue(string $sValue, string $sEncodeType = 'B') : string
|
||||||
{
|
{
|
||||||
$sValue = \trim($sValue);
|
$sValue = \trim($sValue);
|
||||||
if (\strlen($sValue) && !static::IsAscii($sValue)) {
|
if (\strlen($sValue) && !static::IsAscii($sValue)) {
|
||||||
|
|
|
||||||
|
|
@ -153,7 +153,7 @@ class Attachment
|
||||||
$oAttachmentPart->Body =
|
$oAttachmentPart->Body =
|
||||||
\MailSo\Base\StreamWrappers\Binary::CreateStream($oAttachmentPart->Body,
|
\MailSo\Base\StreamWrappers\Binary::CreateStream($oAttachmentPart->Body,
|
||||||
\MailSo\Base\StreamWrappers\Binary::GetInlineDecodeOrEncodeFunctionName(
|
\MailSo\Base\StreamWrappers\Binary::GetInlineDecodeOrEncodeFunctionName(
|
||||||
\MailSo\Base\Enumerations\Encoding::BASE64, false));
|
\MailSo\Base\Enumerations\Encoding::BASE64_LOWER, false));
|
||||||
|
|
||||||
\MailSo\Base\StreamWrappers\Binary::RememberStream($oAttachmentPart->Body);
|
\MailSo\Base\StreamWrappers\Binary::RememberStream($oAttachmentPart->Body);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -184,9 +184,7 @@ class Email implements \JsonSerializable
|
||||||
|
|
||||||
$sDisplayName = \str_replace('"', '\"', $this->sDisplayName);
|
$sDisplayName = \str_replace('"', '\"', $this->sDisplayName);
|
||||||
if ($bConvertSpecialsName) {
|
if ($bConvertSpecialsName) {
|
||||||
$sDisplayName = \strlen($sDisplayName)
|
$sDisplayName = \strlen($sDisplayName) ? \MailSo\Base\Utils::EncodeHeaderValue($sDisplayName) : '';
|
||||||
? \MailSo\Base\Utils::EncodeUnencodedValue(\MailSo\Base\Enumerations\Encoding::BASE64_SHORT, $sDisplayName)
|
|
||||||
: '';
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$sDisplayName = \strlen($sDisplayName) ? '"'.$sDisplayName.'"' : '';
|
$sDisplayName = \strlen($sDisplayName) ? '"'.$sDisplayName.'"' : '';
|
||||||
|
|
|
||||||
|
|
@ -66,9 +66,7 @@ class Parameter implements \JsonSerializable
|
||||||
\strtolower(Enumerations\Parameter::FILENAME)
|
\strtolower(Enumerations\Parameter::FILENAME)
|
||||||
)))
|
)))
|
||||||
{
|
{
|
||||||
return $this->sName . '="' . \MailSo\Base\Utils::EncodeUnencodedValue(
|
return $this->sName . '="' . \MailSo\Base\Utils::EncodeHeaderValue($this->sValue) . '"';
|
||||||
\MailSo\Base\Enumerations\Encoding::BASE64_SHORT,
|
|
||||||
$this->sValue) . '"';
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return $this->sName . '="' . $this->sValue . '"';
|
return $this->sName . '="' . $this->sValue . '"';
|
||||||
|
|
|
||||||
|
|
@ -779,8 +779,7 @@ trait Messages
|
||||||
if (!empty($sRawBody)) {
|
if (!empty($sRawBody)) {
|
||||||
$sMailTo = \trim($aToCollection->ToString(true));
|
$sMailTo = \trim($aToCollection->ToString(true));
|
||||||
$sMailSubject = \trim($oMessage->GetSubject());
|
$sMailSubject = \trim($oMessage->GetSubject());
|
||||||
$sMailSubject = 0 === \strlen($sMailSubject) ? '' : \MailSo\Base\Utils::EncodeUnencodedValue(
|
$sMailSubject = \strlen($sMailSubject) ? \MailSo\Base\Utils::EncodeHeaderValue($sMailSubject) : '';
|
||||||
\MailSo\Base\Enumerations\Encoding::BASE64_SHORT, $sMailSubject);
|
|
||||||
|
|
||||||
$sMailHeaders = $sMailBody = '';
|
$sMailHeaders = $sMailBody = '';
|
||||||
list($sMailHeaders, $sMailBody) = \explode("\r\n\r\n", $sRawBody, 2);
|
list($sMailHeaders, $sMailBody) = \explode("\r\n\r\n", $sRawBody, 2);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue