Просмотр исходного кода

#2053 SMTP Mailer: quotes in subject are double endcoded when sending Test message

Alex Trofimov 7 лет назад
Родитель
Сommit
d7230cde64
2 измененных файлов с 7 добавлено и 2 удалено
  1. 6 1
      inc/utils.inc.php
  2. 1 1
      modules/boonex/smtpmailer/classes/BxSMTPModule.php

+ 6 - 1
inc/utils.inc.php

@@ -390,7 +390,8 @@ function sendMail($sRecipientEmail, $sMailSubject, $sMailBody, $iRecipientID = 0
 
     $sMailParameters = isset($aCustomHeaders['Sender']) ? "-f{$aCustomHeaders['Sender']}" : "-f{$sEmailNotify}";
 
-    $sMailSubject = !isset($aCustomHeaders['Subject']) ? '=?UTF-8?B?' . base64_encode( $sMailSubject ) . '?=' : $aCustomHeaders['Subject'];
+    if (isset($aCustomHeaders['Subject']))
+        $sMailSubject = $aCustomHeaders['Subject'];
 
     // build data for alert handler
     $bResult = null;
@@ -422,6 +423,10 @@ function sendMail($sRecipientEmail, $sMailSubject, $sMailBody, $iRecipientID = 0
         $sMailBody = html2txt($sMailBody);
     }
 
+    // encode subject
+    if (0 !== strncasecmp($sMailSubject, '=?UTF-8?B?', 10))
+        $sMailSubject = '=?UTF-8?B?' . base64_encode($sMailSubject) . '?=';
+
     // send mail or put it into queue
     $bResult = mail($sRecipientEmail, $sMailSubject, $sMailBody, $sMailHeader, $sMailParameters);
 

+ 1 - 1
modules/boonex/smtpmailer/classes/BxSMTPModule.php

@@ -146,7 +146,7 @@ class BxSMTPModule extends BxDolModule
 
             $isHTML = bx_get('html') == 'on' ? true : false;
             $sRecipient = bx_process_pass(bx_get('recipient'));
-            $sSubj = bx_process_pass(bx_get('subject'));
+            $sSubj = bx_get('subject');
             $sBody = bx_process_pass(bx_get('body'), $isHTML ? BX_DATA_HTML : BX_DATA_TEXT);
 
             if (sendMail($sRecipient, $sSubj, $sBody, 0, array(), BX_EMAIL_SYSTEM, $isHTML ? 'html' : ''))