mirror of
https://github.com/the-djmaze/snappymail.git
synced 2026-08-28 03:29:20 +03:00
Merge code to generate MIME PGP parts and MIME Plain parts
This commit is contained in:
parent
ad985f94e5
commit
48c3d655b4
2 changed files with 38 additions and 64 deletions
|
|
@ -182,4 +182,38 @@ class Part
|
|||
|
||||
return \MailSo\Base\StreamWrappers\SubStreams::CreateStream($aSubStreams);
|
||||
}
|
||||
|
||||
public function addPgpEncrypted(string $sEncrypted)
|
||||
{
|
||||
$oPart = new MimePart;
|
||||
$oPart->Headers->AddByName(Enumerations\Header::CONTENT_TYPE, 'multipart/encrypted; protocol="application/pgp-encrypted"');
|
||||
$this->SubParts->append($oPart);
|
||||
|
||||
$oSubPart = new MimePart;
|
||||
$oSubPart->Headers->AddByName(Enumerations\Header::CONTENT_TYPE, 'application/pgp-encrypted');
|
||||
$oSubPart->Headers->AddByName(Enumerations\Header::CONTENT_DISPOSITION, 'attachment');
|
||||
$oSubPart->Headers->AddByName(Enumerations\Header::CONTENT_TRANSFER_ENCODING, '7Bit');
|
||||
$oSubPart->Body = \MailSo\Base\ResourceRegistry::CreateMemoryResourceFromString('Version: 1');
|
||||
$oPart->SubParts->append($oSubPart);
|
||||
|
||||
$oSubPart = new MimePart;
|
||||
$oSubPart->Headers->AddByName(Enumerations\Header::CONTENT_TYPE, 'application/octet-stream');
|
||||
$oSubPart->Headers->AddByName(Enumerations\Header::CONTENT_DISPOSITION, 'inline; filename="msg.asc"');
|
||||
$oSubPart->Headers->AddByName(Enumerations\Header::CONTENT_TRANSFER_ENCODING, '7Bit');
|
||||
$oSubPart->Body = \MailSo\Base\ResourceRegistry::CreateMemoryResourceFromString($sEncrypted);
|
||||
$oPart->SubParts->append($oSubPart);
|
||||
}
|
||||
|
||||
public function addPlain(string $sPlain)
|
||||
{
|
||||
$oPart = new MimePart;
|
||||
$oPart->Headers->AddByName(Enumerations\Header::CONTENT_TYPE, 'text/plain; charset=utf-8');
|
||||
$oPart->Headers->AddByName(Enumerations\Header::CONTENT_TRANSFER_ENCODING, 'quoted-printable');
|
||||
$oPart->Body = \MailSo\Base\StreamWrappers\Binary::CreateStream(
|
||||
\MailSo\Base\ResourceRegistry::CreateMemoryResourceFromString(\preg_replace('/\\r?\\n/su', "\r\n", \trim($sPlain))),
|
||||
'convert.quoted-printable-encode'
|
||||
);
|
||||
$this->SubParts->append($oPart);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -906,8 +906,6 @@ trait Messages
|
|||
|
||||
if ($this->Config()->Get('security', 'hide_x_mailer_header', true)) {
|
||||
$oMessage->DoesNotAddDefaultXMailer();
|
||||
} else {
|
||||
$oMessage->SetXMailer('SnappyMail/'.APP_VERSION);
|
||||
}
|
||||
|
||||
$oMessage->SetFrom(new \MailSo\Mime\Email($oIdentity->Email(), $oIdentity->Name()));
|
||||
|
|
@ -952,8 +950,6 @@ trait Messages
|
|||
|
||||
if ($this->Config()->Get('security', 'hide_x_mailer_header', true)) {
|
||||
$oMessage->DoesNotAddDefaultXMailer();
|
||||
} else {
|
||||
$oMessage->SetXMailer('SnappyMail/'.APP_VERSION);
|
||||
}
|
||||
|
||||
$sFrom = $this->GetActionParam('from', '');
|
||||
|
|
@ -1029,28 +1025,7 @@ trait Messages
|
|||
unset($sSigned);
|
||||
|
||||
} else if ($sEncrypted = $this->GetActionParam('encrypted', '')) {
|
||||
$oPart = new MimePart;
|
||||
$oPart->Headers->AddByName(
|
||||
MimeEnumHeader::CONTENT_TYPE,
|
||||
'multipart/encrypted; protocol="application/pgp-encrypted"'
|
||||
);
|
||||
$oMessage->SubParts->append($oPart);
|
||||
|
||||
$oAlternativePart = new MimePart;
|
||||
$oAlternativePart->Headers->AddByName(MimeEnumHeader::CONTENT_TYPE, 'application/pgp-encrypted');
|
||||
$oAlternativePart->Headers->AddByName(MimeEnumHeader::CONTENT_DISPOSITION, 'attachment');
|
||||
$oAlternativePart->Headers->AddByName(MimeEnumHeader::CONTENT_TRANSFER_ENCODING, '7Bit');
|
||||
$oAlternativePart->Body = \MailSo\Base\ResourceRegistry::CreateMemoryResourceFromString('Version: 1');
|
||||
$oPart->SubParts->append($oAlternativePart);
|
||||
|
||||
$oAlternativePart = new MimePart;
|
||||
$oAlternativePart->Headers->AddByName(MimeEnumHeader::CONTENT_TYPE, 'application/octet-stream');
|
||||
$oAlternativePart->Headers->AddByName(MimeEnumHeader::CONTENT_DISPOSITION, 'inline; filename="msg.asc"');
|
||||
$oAlternativePart->Headers->AddByName(MimeEnumHeader::CONTENT_TRANSFER_ENCODING, '7Bit');
|
||||
$oAlternativePart->Body = \MailSo\Base\ResourceRegistry::CreateMemoryResourceFromString(\preg_replace('/\\r?\\n/su', "\r\n", \trim($sEncrypted)));
|
||||
$oPart->SubParts->append($oAlternativePart);
|
||||
|
||||
unset($oAlternativePart);
|
||||
$oPart->addPgpEncrypted(\preg_replace('/\\r?\\n/su', "\r\n", \trim($sEncrypted)));
|
||||
unset($sEncrypted);
|
||||
|
||||
} else if ($sHtml = $this->GetActionParam('html', '')) {
|
||||
|
|
@ -1064,14 +1039,7 @@ trait Messages
|
|||
// First add plain
|
||||
$sPlain = $this->GetActionParam('plain', '') ?: \MailSo\Base\HtmlUtils::ConvertHtmlToPlain($sHtml);
|
||||
$this->Plugins()->RunHook('filter.message-plain', array($oAccount, $oMessage, &$sPlain));
|
||||
$oAlternativePart = new MimePart;
|
||||
$oAlternativePart->Headers->AddByName(MimeEnumHeader::CONTENT_TYPE, 'text/plain; charset=utf-8');
|
||||
$oAlternativePart->Headers->AddByName(MimeEnumHeader::CONTENT_TRANSFER_ENCODING, 'quoted-printable');
|
||||
$oAlternativePart->Body = \MailSo\Base\StreamWrappers\Binary::CreateStream(
|
||||
\MailSo\Base\ResourceRegistry::CreateMemoryResourceFromString(\preg_replace('/\\r?\\n/su', "\r\n", \trim($sPlain))),
|
||||
'convert.quoted-printable-encode'
|
||||
);
|
||||
$oPart->SubParts->append($oAlternativePart);
|
||||
$oPart->addPlain($sPlain);
|
||||
unset($sPlain);
|
||||
|
||||
// Now add HTML
|
||||
|
|
@ -1114,15 +1082,7 @@ trait Messages
|
|||
} else {
|
||||
*/
|
||||
$this->Plugins()->RunHook('filter.message-plain', array($oAccount, $oMessage, &$sPlain));
|
||||
$oAlternativePart = new MimePart;
|
||||
$oAlternativePart->Headers->AddByName(MimeEnumHeader::CONTENT_TYPE, 'text/plain; charset="utf-8"');
|
||||
$oAlternativePart->Headers->AddByName(MimeEnumHeader::CONTENT_TRANSFER_ENCODING, 'quoted-printable');
|
||||
$oAlternativePart->Body = \MailSo\Base\StreamWrappers\Binary::CreateStream(
|
||||
\MailSo\Base\ResourceRegistry::CreateMemoryResourceFromString(\preg_replace('/\\r?\\n/su', "\r\n", \trim($sPlain))),
|
||||
'convert.quoted-printable-encode'
|
||||
);
|
||||
$oMessage->SubParts->append($oAlternativePart);
|
||||
unset($oAlternativePart);
|
||||
$oMessage->addPlain($sPlain);
|
||||
unset($sPlain);
|
||||
}
|
||||
unset($oPart);
|
||||
|
|
@ -1230,28 +1190,8 @@ trait Messages
|
|||
foreach ($aFingerprints as $sFingerprint) {
|
||||
$GPG->addEncryptKey($sFingerprint);
|
||||
}
|
||||
$sEncrypted = $GPG->encryptStream($fp);
|
||||
|
||||
$oPart = new MimePart;
|
||||
$oPart->Headers->AddByName(
|
||||
MimeEnumHeader::CONTENT_TYPE,
|
||||
'multipart/encrypted; protocol="application/pgp-encrypted"'
|
||||
);
|
||||
$oMessage->SubParts->append($oPart);
|
||||
|
||||
$oAlternativePart = new MimePart;
|
||||
$oAlternativePart->Headers->AddByName(MimeEnumHeader::CONTENT_TYPE, 'application/pgp-encrypted');
|
||||
$oAlternativePart->Headers->AddByName(MimeEnumHeader::CONTENT_DISPOSITION, 'attachment');
|
||||
$oAlternativePart->Headers->AddByName(MimeEnumHeader::CONTENT_TRANSFER_ENCODING, '7Bit');
|
||||
$oAlternativePart->Body = \MailSo\Base\ResourceRegistry::CreateMemoryResourceFromString('Version: 1');
|
||||
$oPart->SubParts->append($oAlternativePart);
|
||||
|
||||
$oAlternativePart = new MimePart;
|
||||
$oAlternativePart->Headers->AddByName(MimeEnumHeader::CONTENT_TYPE, 'application/octet-stream');
|
||||
$oAlternativePart->Headers->AddByName(MimeEnumHeader::CONTENT_DISPOSITION, 'inline; filename="msg.asc"');
|
||||
$oAlternativePart->Headers->AddByName(MimeEnumHeader::CONTENT_TRANSFER_ENCODING, '7Bit');
|
||||
$oAlternativePart->Body = \MailSo\Base\ResourceRegistry::CreateMemoryResourceFromString($sEncrypted);
|
||||
$oPart->SubParts->append($oAlternativePart);
|
||||
$oPart->addPgpEncrypted($GPG->encryptStream($fp));
|
||||
}
|
||||
|
||||
$this->Plugins()->RunHook('filter.build-message', array($oMessage));
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue