]> git.mxchange.org Git - friendica-addons.git/blobdiff - phpmailer/phpmailer.php
Store hash tags
[friendica-addons.git] / phpmailer / phpmailer.php
index 2b38f07a6ac2d464f69dfa3ac2f9d2822cc9bbb5..4c12709d0eaaf7c92d8648ec09215b3ee4ac0485 100644 (file)
@@ -11,7 +11,7 @@ use Friendica\App;
 use Friendica\Core\Hook;
 use Friendica\DI;
 use Friendica\Object\EMail\IEmail;
-use Friendica\Util\ConfigFileLoader;
+use Friendica\Core\Config\Util\ConfigFileManager;
 use PHPMailer\PHPMailer\PHPMailer;
 use PHPMailer\PHPMailer\Exception;
 
@@ -20,31 +20,30 @@ require_once __DIR__ . DIRECTORY_SEPARATOR . 'vendor' . DIRECTORY_SEPARATOR . 'a
 function phpmailer_install()
 {
        Hook::register('load_config'         , __FILE__, 'phpmailer_load_config');
-       Hook::register('emailer_send_prepare', __FILE__, 'phpmailer_emailer_send_prepare');
+       Hook::register('emailer_send_prepare', __FILE__, 'phpmailer_emailer_send_prepare', 5);
 }
 
-function phpmailer_load_config(App $a, ConfigFileLoader $loader)
+function phpmailer_load_config(ConfigFileManager $loader)
 {
-       $a->getConfigCache()->load($loader->loadAddonConfig('phpmailer'));
+       DI::app()->getConfigCache()->load($loader->loadAddonConfig('phpmailer'), \Friendica\Core\Config\ValueObject\Cache::SOURCE_STATIC);
 }
 
 /**
- * @param App $a
  * @param IEmail $email
  */
-function phpmailer_emailer_send_prepare(App $a, IEmail &$email)
+function phpmailer_emailer_send_prepare(IEmail &$email)
 {
        // Passing `true` enables exceptions
        $mailer = new PHPMailer(true);
        try {
+               // Setup encoding.
+               $mailer->CharSet  = 'UTF-8';
+               $mailer->Encoding = 'base64';
+
                if (DI::config()->get('phpmailer', 'smtp')) {
                        // Set mailer to use SMTP
                        $mailer->isSMTP();
 
-                       // Setup encoding.
-                       $mailer->CharSet  = 'UTF-8';
-                       $mailer->Encoding = 'base64';
-
                        // Specify main and backup SMTP servers
                        $mailer->Host = DI::config()->get('phpmailer', 'smtp_server');
                        $mailer->Port = DI::config()->get('phpmailer', 'smtp_port');
@@ -91,11 +90,13 @@ function phpmailer_emailer_send_prepare(App $a, IEmail &$email)
                // additional headers
                if (!empty($email->getAdditionalMailHeader())) {
                        foreach ($email->getAdditionalMailHeader() as $name => $values) {
-                               // Skip the "Message-ID" header because PHP-Mailer is using its own
-                               if ($name == 'Message-Id') {
-                                       continue;
+                               // Set the "Message-ID" header for PHP-Mailer directly
+                               if (strtolower($name) === 'message-id') {
+                                       // implode all values to one entry, because there's only one value possible
+                                       $mailer->MessageID = trim(implode("", $values));
+                               } else {
+                                       $mailer->addCustomHeader(trim($name), trim(implode("\n", $values)));
                                }
-                               $mailer->addCustomHeader(trim($name), trim(implode("\n", $values)));
                        }
                }