mirror of
https://github.com/the-djmaze/snappymail.git
synced 2026-09-07 08:27:03 +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);
|
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)) {
|
if ($this->Config()->Get('security', 'hide_x_mailer_header', true)) {
|
||||||
$oMessage->DoesNotAddDefaultXMailer();
|
$oMessage->DoesNotAddDefaultXMailer();
|
||||||
} else {
|
|
||||||
$oMessage->SetXMailer('SnappyMail/'.APP_VERSION);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$oMessage->SetFrom(new \MailSo\Mime\Email($oIdentity->Email(), $oIdentity->Name()));
|
$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)) {
|
if ($this->Config()->Get('security', 'hide_x_mailer_header', true)) {
|
||||||
$oMessage->DoesNotAddDefaultXMailer();
|
$oMessage->DoesNotAddDefaultXMailer();
|
||||||
} else {
|
|
||||||
$oMessage->SetXMailer('SnappyMail/'.APP_VERSION);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$sFrom = $this->GetActionParam('from', '');
|
$sFrom = $this->GetActionParam('from', '');
|
||||||
|
|
@ -1029,28 +1025,7 @@ trait Messages
|
||||||
unset($sSigned);
|
unset($sSigned);
|
||||||
|
|
||||||
} else if ($sEncrypted = $this->GetActionParam('encrypted', '')) {
|
} else if ($sEncrypted = $this->GetActionParam('encrypted', '')) {
|
||||||
$oPart = new MimePart;
|
$oPart->addPgpEncrypted(\preg_replace('/\\r?\\n/su', "\r\n", \trim($sEncrypted)));
|
||||||
$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);
|
|
||||||
unset($sEncrypted);
|
unset($sEncrypted);
|
||||||
|
|
||||||
} else if ($sHtml = $this->GetActionParam('html', '')) {
|
} else if ($sHtml = $this->GetActionParam('html', '')) {
|
||||||
|
|
@ -1064,14 +1039,7 @@ trait Messages
|
||||||
// First add plain
|
// First add plain
|
||||||
$sPlain = $this->GetActionParam('plain', '') ?: \MailSo\Base\HtmlUtils::ConvertHtmlToPlain($sHtml);
|
$sPlain = $this->GetActionParam('plain', '') ?: \MailSo\Base\HtmlUtils::ConvertHtmlToPlain($sHtml);
|
||||||
$this->Plugins()->RunHook('filter.message-plain', array($oAccount, $oMessage, &$sPlain));
|
$this->Plugins()->RunHook('filter.message-plain', array($oAccount, $oMessage, &$sPlain));
|
||||||
$oAlternativePart = new MimePart;
|
$oPart->addPlain($sPlain);
|
||||||
$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);
|
|
||||||
unset($sPlain);
|
unset($sPlain);
|
||||||
|
|
||||||
// Now add HTML
|
// Now add HTML
|
||||||
|
|
@ -1114,15 +1082,7 @@ trait Messages
|
||||||
} else {
|
} else {
|
||||||
*/
|
*/
|
||||||
$this->Plugins()->RunHook('filter.message-plain', array($oAccount, $oMessage, &$sPlain));
|
$this->Plugins()->RunHook('filter.message-plain', array($oAccount, $oMessage, &$sPlain));
|
||||||
$oAlternativePart = new MimePart;
|
$oMessage->addPlain($sPlain);
|
||||||
$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);
|
|
||||||
unset($sPlain);
|
unset($sPlain);
|
||||||
}
|
}
|
||||||
unset($oPart);
|
unset($oPart);
|
||||||
|
|
@ -1230,28 +1190,8 @@ trait Messages
|
||||||
foreach ($aFingerprints as $sFingerprint) {
|
foreach ($aFingerprints as $sFingerprint) {
|
||||||
$GPG->addEncryptKey($sFingerprint);
|
$GPG->addEncryptKey($sFingerprint);
|
||||||
}
|
}
|
||||||
$sEncrypted = $GPG->encryptStream($fp);
|
|
||||||
|
|
||||||
$oPart = new MimePart;
|
$oPart->addPgpEncrypted($GPG->encryptStream($fp));
|
||||||
$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);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->Plugins()->RunHook('filter.build-message', array($oMessage));
|
$this->Plugins()->RunHook('filter.build-message', array($oMessage));
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue