%PDF- %GIF98; %PNG;
Server : ApacheSystem : Linux host.digitalbabaji.in 4.18.0-513.11.1.el8_9.x86_64 #1 SMP Wed Jan 17 02:00:40 EST 2024 x86_64 User : addictionfreeind ( 1003) PHP Version : 7.2.34 Disable Function : exec,passthru,shell_exec,system Directory : /home/addictionfreeind/public_html/vendor/cakephp/debug_kit/src/Mailer/ |
Upload File : |
<?php
/**
* CakePHP(tm) : Rapid Development Framework (http://cakephp.org)
* Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
*
* Licensed under The MIT License
* Redistributions of files must retain the above copyright notice.
*
* @copyright Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
* @link http://cakephp.org CakePHP(tm) Project
* @license http://www.opensource.org/licenses/mit-license.php MIT License
*/
namespace DebugKit\Mailer;
use Cake\Mailer\Mailer;
use ReflectionClass;
/**
* Represents the result of a preview for a given mailer
*/
class PreviewResult extends AbstractResult
{
/**
* Processes the mailer to extract the headers and parts
*
* @param Mailer $mailer The mailer instance to execute and extract the email data from
* @param string $method The method to execute in the mailer
*/
public function __construct(Mailer $mailer, $method)
{
$this->processMailer(clone $mailer, $method);
$mailer->reset();
}
/**
* Executes the mailer and extracts the relevant information from the generated email
*
* @param Mailer $mailer The mailer instance to execute and extract the email data from
* @param string $method The method to execute in the mailer
* @return void
*/
protected function processMailer(Mailer $mailer, $method)
{
$reflection = new ReflectionClass($mailer);
$prop = $reflection->getProperty('_email');
$prop->setAccessible(true);
$email = $prop->getValue($mailer);
if (!$email->getTemplate()) {
$email->setTemplate($method);
}
$render = (new ReflectionClass($email))
->getMethod('_renderTemplates')
->getClosure($email);
$this->parts = $render('');
$extra = ['from', 'sender', 'replyTo', 'readReceipt', 'returnPath', 'to', 'cc', 'subject'];
$this->headers = array_filter($email->getHeaders($extra));
}
}