|
Apache/2.4.41 (Ubuntu) Linux vmi616275.contaboserver.net 5.4.0-84-generic #94-Ubuntu SMP Thu Aug 26 20:27:37 UTC 2021 x86_64 uid=33(www-data) gid=33(www-data) groups=33(www-data) server ip : 62.171.164.128 | your ip : 127.0.0.1 safemode OFF > / home / dev2.destoffenstraat.com / app / code / TIG / PostNL / Model / Mail / Template / |
Filename | /home/dev2.destoffenstraat.com/app/code/TIG/PostNL/Model/Mail/Template/TransportBuilder.php |
Size | 3.53 kb |
Permission | rwxrwxrwx |
Owner | root : root |
Create time | 17-Aug-2025 10:26 |
Last modified | 20-Dec-2022 13:13 |
Last accessed | 22-Aug-2025 14:43 |
Actions | edit | rename | delete | download (gzip) |
View | text | code | image |
<?php
/**
*
* ..::..
* ..::::::::::::..
* ::'''''':''::'''''::
* ::.. ..: : ....::
* :::: ::: : : ::
* :::: ::: : ''' ::
* ::::..:::..::.....::
* ''::::::::::::''
* ''::''
*
*
* NOTICE OF LICENSE
*
* This source file is subject to the Creative Commons License.
* It is available through the world-wide-web at this URL:
* http://creativecommons.org/licenses/by-nc-nd/3.0/nl/deed.en_US
* If you are unable to obtain it through the world-wide-web, please send an email
* to servicedesk@tig.nl so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade this module to newer
* versions in the future. If you wish to customize this module for your
* needs please contact servicedesk@tig.nl for more information.
*
* @copyright Copyright (c) Total Internet Group B.V. https://tig.nl/copyright
* @license http://creativecommons.org/licenses/by-nc-nd/3.0/nl/deed.en_US
*/
namespace TIG\PostNL\Model\Mail\Template;
use Laminas\Mime\Message as MimeMessage;
use Laminas\Mime\Mime;
use Laminas\Mime\Part;
use Magento\Framework\Mail\MessageInterface;
class TransportBuilder extends \Magento\Framework\Mail\Template\TransportBuilder
{
/**
* @var array
*/
private $parts = [];
/**
* @return $this|TransportBuilder
* @throws \Magento\Framework\Exception\LocalizedException
*/
protected function prepareMessage()
{
parent::prepareMessage();
$mimeMessage = $this->getMimeMessage($this->message);
if ($this->parts instanceof Part) {
$mimeMessage->addPart($this->parts);
$this->message->setBody($mimeMessage);
}
return $this;
}
/**
* @param $body
* @param string $mimeType
* @param string $disposition
* @param string $encoding
* @param $filename
*
* @return $this
*/
public function addAttachment(
$body,
string $mimeType = Mime::TYPE_OCTETSTREAM,
string $disposition = Mime::DISPOSITION_ATTACHMENT,
string $encoding = Mime::ENCODING_BASE64,
$filename = null
) {
$this->parts = $this->createMimePart($body, $mimeType, $disposition, $encoding, $filename);
return $this;
}
/**
* @param $content
* @param string $type
* @param string $disposition
* @param string $encoding
* @param $filename
*
* @return Part
*/
private function createMimePart(
$content,
string $type = Mime::TYPE_OCTETSTREAM,
string $disposition = Mime::DISPOSITION_ATTACHMENT,
string $encoding = Mime::ENCODING_BASE64,
$filename = null
) {
$mimePart = new Part($content);
$mimePart->setType($type);
$mimePart->setDisposition($disposition);
$mimePart->setEncoding($encoding);
if ($filename) {
$mimePart->setFileName($filename);
}
return $mimePart;
}
/**
* @param MessageInterface $message
*
* @return MimeMessage
*/
private function getMimeMessage(MessageInterface $message)
{
$body = $message->getBody();
if ($body instanceof MimeMessage) {
return $body;
}
$mimeMessage = new MimeMessage();
if ($body) {
$mimePart = $this->createMimePart((string)$body, Mime::TYPE_TEXT, Mime::DISPOSITION_INLINE);
$mimeMessage->setParts([$mimePart]);
}
return $mimeMessage;
}
}
/**
*
* ..::..
* ..::::::::::::..
* ::'''''':''::'''''::
* ::.. ..: : ....::
* :::: ::: : : ::
* :::: ::: : ''' ::
* ::::..:::..::.....::
* ''::::::::::::''
* ''::''
*
*
* NOTICE OF LICENSE
*
* This source file is subject to the Creative Commons License.
* It is available through the world-wide-web at this URL:
* http://creativecommons.org/licenses/by-nc-nd/3.0/nl/deed.en_US
* If you are unable to obtain it through the world-wide-web, please send an email
* to servicedesk@tig.nl so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade this module to newer
* versions in the future. If you wish to customize this module for your
* needs please contact servicedesk@tig.nl for more information.
*
* @copyright Copyright (c) Total Internet Group B.V. https://tig.nl/copyright
* @license http://creativecommons.org/licenses/by-nc-nd/3.0/nl/deed.en_US
*/
namespace TIG\PostNL\Model\Mail\Template;
use Laminas\Mime\Message as MimeMessage;
use Laminas\Mime\Mime;
use Laminas\Mime\Part;
use Magento\Framework\Mail\MessageInterface;
class TransportBuilder extends \Magento\Framework\Mail\Template\TransportBuilder
{
/**
* @var array
*/
private $parts = [];
/**
* @return $this|TransportBuilder
* @throws \Magento\Framework\Exception\LocalizedException
*/
protected function prepareMessage()
{
parent::prepareMessage();
$mimeMessage = $this->getMimeMessage($this->message);
if ($this->parts instanceof Part) {
$mimeMessage->addPart($this->parts);
$this->message->setBody($mimeMessage);
}
return $this;
}
/**
* @param $body
* @param string $mimeType
* @param string $disposition
* @param string $encoding
* @param $filename
*
* @return $this
*/
public function addAttachment(
$body,
string $mimeType = Mime::TYPE_OCTETSTREAM,
string $disposition = Mime::DISPOSITION_ATTACHMENT,
string $encoding = Mime::ENCODING_BASE64,
$filename = null
) {
$this->parts = $this->createMimePart($body, $mimeType, $disposition, $encoding, $filename);
return $this;
}
/**
* @param $content
* @param string $type
* @param string $disposition
* @param string $encoding
* @param $filename
*
* @return Part
*/
private function createMimePart(
$content,
string $type = Mime::TYPE_OCTETSTREAM,
string $disposition = Mime::DISPOSITION_ATTACHMENT,
string $encoding = Mime::ENCODING_BASE64,
$filename = null
) {
$mimePart = new Part($content);
$mimePart->setType($type);
$mimePart->setDisposition($disposition);
$mimePart->setEncoding($encoding);
if ($filename) {
$mimePart->setFileName($filename);
}
return $mimePart;
}
/**
* @param MessageInterface $message
*
* @return MimeMessage
*/
private function getMimeMessage(MessageInterface $message)
{
$body = $message->getBody();
if ($body instanceof MimeMessage) {
return $body;
}
$mimeMessage = new MimeMessage();
if ($body) {
$mimePart = $this->createMimePart((string)$body, Mime::TYPE_TEXT, Mime::DISPOSITION_INLINE);
$mimeMessage->setParts([$mimePart]);
}
return $mimeMessage;
}
}