فهرست منبع

Fix for folding inside msg-id's

stekkel 22 سال پیش
والد
کامیت
c337b7acf5
1فایلهای تغییر یافته به همراه24 افزوده شده و 3 حذف شده
  1. 24 3
      class/deliver/Deliver.class.php

+ 24 - 3
class/deliver/Deliver.class.php

@@ -339,12 +339,33 @@ class Deliver {
 	}
 	$cnt = count($header);
 	$hdr_s = '';
+
 	for ($i = 0 ; $i < $cnt ; $i++) {
-    	    $hdr_s .= $this->foldLine($header[$i], 78, str_pad('',4));
+            $sKey = substr($header[$i],0,strpos($header[$i],':'));
+            switch ($sKey)
+            {
+            case 'Message-ID':
+            case 'In-Reply_To':
+                $hdr_s .= $header[$i];
+                break;
+            case 'References':
+                $sRefs = substr($header[$i],12);
+                $aRefs = explode(' ',$sRefs);
+                $sLine = 'References:';
+                foreach ($aRefs as $sReference) {
+                    if (strlen($sLine)+strlen($sReference) >76) {
+                        $hdr_s .= $sLine;
+                        $sLine = $rn . '    ' . $sReference;
+                    } else {
+                        $sLine .= ' '. $sReference;
+                    }
+                }
+                $hdr_s .= $sLine;
+                break;
+            default: $hdr_s .= $this->foldLine($header[$i], 78, str_pad('',4)); break;
+            }
 	}
 
-//	$debug = "Debug: <123456789012345678901234567890123456789012345678901234567890123456789>\r\n";
-//	$this->foldLine($debug, 78, str_pad('',4));
 	$header = $hdr_s;
 	$header .= $rn; /* One blank line to separate header and body */
 	$raw_length += strlen($header);