]> git.mxchange.org Git - friendica.git/commitdiff
Add a Message-ID header if none is set in Util\Emailer
authorHypolite Petovan <hypolite@mrpetovan.com>
Mon, 14 Aug 2023 21:17:25 +0000 (17:17 -0400)
committerHypolite Petovan <hypolite@mrpetovan.com>
Mon, 14 Aug 2023 21:17:25 +0000 (17:17 -0400)
- Address anti-spam detection rule

src/Util/Emailer.php

index 5e4d98d4c9e83e18ca46ebac609dd7e7d1b76658..1accc574c302aec70e906062cf0bc67720d761f5 100644 (file)
@@ -126,7 +126,7 @@ class Emailer
         * @return bool
         * @throws InternalServerErrorException
         */
-       public function send(IEmail $email)
+       public function send(IEmail $email): bool
        {
                Hook::callAll('emailer_send_prepare', $email);
 
@@ -151,7 +151,7 @@ class Emailer
                }
 
                $fromName       = Email::encodeHeader(html_entity_decode($email->getFromName(), ENT_QUOTES, 'UTF-8'), 'UTF-8');
-               $fromAddress      = $email->getFromAddress();
+               $fromAddress    = $email->getFromAddress();
                $replyTo        = $email->getReplyTo();
                $messageSubject = Email::encodeHeader(html_entity_decode($email->getSubject(), ENT_QUOTES, 'UTF-8'), 'UTF-8');
 
@@ -161,12 +161,17 @@ class Emailer
                                . rand(100000000, 999999999) . '=:'
                                . rand(10000, 99999);
 
+               $messageHeader = $email->getAdditionalMailHeaderString();
+               if ($countMessageId === 0) {
+                       $messageHeader .= 'Message-ID: <Friendica-Util-Emailer-' . Strings::getRandomHex() . '@' . $this->baseUrl->getHost() . '>' . "\r\n";
+               }
+
                // generate a multipart/alternative message header
-               $messageHeader = $email->getAdditionalMailHeaderString() .
-                                "From: $fromName <{$fromAddress}>\r\n" .
-                                "Reply-To: $fromName <{$replyTo}>\r\n" .
-                                "MIME-Version: 1.0\r\n" .
-                                "Content-Type: multipart/alternative; boundary=\"{$mimeBoundary}\"";
+               $messageHeader .=
+                       "From: $fromName <{$fromAddress}>\r\n" .
+                       "Reply-To: $fromName <{$replyTo}>\r\n" .
+                       "MIME-Version: 1.0\r\n" .
+                       "Content-Type: multipart/alternative; boundary=\"{$mimeBoundary}\"";
 
                // assemble the final multipart message body with the text and html types included
                $textBody             = chunk_split(base64_encode($email->getMessage(true)));