From 2b3acf5368552164b4649f493e7d27326d02d21e Mon Sep 17 00:00:00 2001 From: Llewellyn van der Merwe Date: Thu, 21 Jun 2018 16:25:49 +0200 Subject: [PATCH] added the option to set headers in the email helper class --- README.md | 4 +-- admin/README.txt | 4 +-- admin/compiler/joomla_3/Helper_email.php | 40 +++++++++++++++++++----- admin/helpers/componentbuilderemail.php | 40 +++++++++++++++++++----- componentbuilder.xml | 2 +- 5 files changed, 71 insertions(+), 19 deletions(-) diff --git a/README.md b/README.md index 74409efb7..bc553766f 100644 --- a/README.md +++ b/README.md @@ -125,11 +125,11 @@ Watch the [proposed development workflow](https://vdm.bz/proposed-development-wo + *Author*: [Llewellyn van der Merwe](mailto:llewellyn@joomlacomponentbuilder.com) + *Name*: [Component Builder](https://github.com/vdm-io/Joomla-Component-Builder) + *First Build*: 30th April, 2015 -+ *Last Build*: 15th June, 2018 ++ *Last Build*: 21st June, 2018 + *Version*: 2.8.0 + *Copyright*: Copyright (C) 2015 - 2018 Vast Development Method. All rights reserved. + *License*: GNU General Public License version 2 or later; see LICENSE.txt -+ *Line count*: **185735** ++ *Line count*: **185761** + *Field count*: **1054** + *File count*: **1236** + *Folder count*: **197** diff --git a/admin/README.txt b/admin/README.txt index 74409efb7..bc553766f 100644 --- a/admin/README.txt +++ b/admin/README.txt @@ -125,11 +125,11 @@ Watch the [proposed development workflow](https://vdm.bz/proposed-development-wo + *Author*: [Llewellyn van der Merwe](mailto:llewellyn@joomlacomponentbuilder.com) + *Name*: [Component Builder](https://github.com/vdm-io/Joomla-Component-Builder) + *First Build*: 30th April, 2015 -+ *Last Build*: 15th June, 2018 ++ *Last Build*: 21st June, 2018 + *Version*: 2.8.0 + *Copyright*: Copyright (C) 2015 - 2018 Vast Development Method. All rights reserved. + *License*: GNU General Public License version 2 or later; see LICENSE.txt -+ *Line count*: **185735** ++ *Line count*: **185761** + *Field count*: **1054** + *File count*: **1236** + *Folder count*: **197** diff --git a/admin/compiler/joomla_3/Helper_email.php b/admin/compiler/joomla_3/Helper_email.php index 370b827a2..91448563f 100644 --- a/admin/compiler/joomla_3/Helper_email.php +++ b/admin/compiler/joomla_3/Helper_email.php @@ -45,6 +45,13 @@ abstract class ###Component###Email */ public static $mailer = null; + /** + * Custom Headers + * + * @var array + */ + protected static $header = array(); + /** * Get a configuration object * @@ -58,7 +65,7 @@ abstract class ###Component###Email return self::$config; } - + /** * Get a mailer object. * @@ -164,6 +171,17 @@ abstract class ###Component###Email return $mail; } + /** + * Set a Mail custom header. + * + * @return void + */ + public static function setHeader($target, $value) + { + // set the header + self::$header[$target] = $value; + } + /** * Send an email * @@ -172,7 +190,6 @@ abstract class ###Component###Email */ public static function send($recipient, $subject, $body, $textonly, $mode = 0, $bounce_email = null, $idsession = null, $mailreply = null, $replyname = null , $mailfrom = null, $fromname = null, $cc = null, $bcc = null, $attachment = null, $embeded = null , $embeds = null) { - // Get a JMail instance $mail = self::getMailer(); @@ -199,7 +216,16 @@ abstract class ###Component###Email { $mail->addCustomHeader('X-VDMmethodID:'.$idsession); } - + + // set headers if found + if (isset(self::$header) && is_array(self::$header) && count((array)self::$header) > 0) + { + foreach (self::$header as $_target => $_value) + { + $mail->addCustomHeader($_target.':'.$_value); + } + } + // set the subject & Body $mail->setSubject($subject); $mail->setBody($body); @@ -243,7 +269,7 @@ abstract class ###Component###Email $mail->ClearReplyTos(); $mail->addReplyTo($mailreply, $replyname); } - + // check if we can add the DKIM to email if ($conf->get('enable_dkim')) { @@ -261,20 +287,20 @@ abstract class ###Component###Email $mail->DKIM_private = $tmp; } } - + $sendmail = $mail->Send(); if ($conf->get('enable_dkim') && !empty($conf->get('dkim_domain')) && !empty($conf->get('dkim_selector')) && !empty($conf->get('dkim_private')) && !empty($conf->get('dkim_public'))) { @unlink($tmp); } - + if (method_exists('###Component###Helper','storeMessage')) { // store the massage if the method is set ###Component###Helper::storeMessage($sendmail, $recipient, $subject, $body, $textonly, $mode, 'email'); } - + return $sendmail; } diff --git a/admin/helpers/componentbuilderemail.php b/admin/helpers/componentbuilderemail.php index 22956ff92..ea1f40999 100644 --- a/admin/helpers/componentbuilderemail.php +++ b/admin/helpers/componentbuilderemail.php @@ -28,6 +28,13 @@ abstract class ComponentbuilderEmail */ public static $mailer = null; + /** + * Custom Headers + * + * @var array + */ + protected static $header = array(); + /** * Get a configuration object * @@ -41,7 +48,7 @@ abstract class ComponentbuilderEmail return self::$config; } - + /** * Get a mailer object. * @@ -147,6 +154,17 @@ abstract class ComponentbuilderEmail return $mail; } + /** + * Set a Mail custom header. + * + * @return void + */ + public static function setHeader($target, $value) + { + // set the header + self::$header[$target] = $value; + } + /** * Send an email * @@ -155,7 +173,6 @@ abstract class ComponentbuilderEmail */ public static function send($recipient, $subject, $body, $textonly, $mode = 0, $bounce_email = null, $idsession = null, $mailreply = null, $replyname = null , $mailfrom = null, $fromname = null, $cc = null, $bcc = null, $attachment = null, $embeded = null , $embeds = null) { - // Get a JMail instance $mail = self::getMailer(); @@ -182,7 +199,16 @@ abstract class ComponentbuilderEmail { $mail->addCustomHeader('X-VDMmethodID:'.$idsession); } - + + // set headers if found + if (isset(self::$header) && is_array(self::$header) && count((array)self::$header) > 0) + { + foreach (self::$header as $_target => $_value) + { + $mail->addCustomHeader($_target.':'.$_value); + } + } + // set the subject & Body $mail->setSubject($subject); $mail->setBody($body); @@ -226,7 +252,7 @@ abstract class ComponentbuilderEmail $mail->ClearReplyTos(); $mail->addReplyTo($mailreply, $replyname); } - + // check if we can add the DKIM to email if ($conf->get('enable_dkim')) { @@ -244,20 +270,20 @@ abstract class ComponentbuilderEmail $mail->DKIM_private = $tmp; } } - + $sendmail = $mail->Send(); if ($conf->get('enable_dkim') && !empty($conf->get('dkim_domain')) && !empty($conf->get('dkim_selector')) && !empty($conf->get('dkim_private')) && !empty($conf->get('dkim_public'))) { @unlink($tmp); } - + if (method_exists('ComponentbuilderHelper','storeMessage')) { // store the massage if the method is set ComponentbuilderHelper::storeMessage($sendmail, $recipient, $subject, $body, $textonly, $mode, 'email'); } - + return $sendmail; } diff --git a/componentbuilder.xml b/componentbuilder.xml index fdb8bcb3d..a92ec66c7 100644 --- a/componentbuilder.xml +++ b/componentbuilder.xml @@ -1,7 +1,7 @@ COM_COMPONENTBUILDER - 15th June, 2018 + 21st June, 2018 Llewellyn van der Merwe llewellyn@joomlacomponentbuilder.com http://www.joomlacomponentbuilder.com