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

This is a fix for the eml forward module

philippe_mingo 23 лет назад
Родитель
Сommit
8222f29578
3 измененных файлов с 63 добавлено и 59 удалено
  1. 9 5
      functions/smtp.php
  2. 6 6
      src/compose.php
  3. 48 48
      src/move_messages.php

+ 9 - 5
functions/smtp.php

@@ -147,8 +147,10 @@ function attachFiles ($fp, $session, $rn="\r\n") {
                 $file = fopen ($filename, 'rb');
                 $file = fopen ($filename, 'rb');
                 if (substr($filetype, 0, 5) == 'text/' ||
                 if (substr($filetype, 0, 5) == 'text/' ||
                     substr($filetype, 0, 8) == 'message/' ) {
                     substr($filetype, 0, 8) == 'message/' ) {
-                    $header .= "$rn";
-					if ($fp) fputs ($fp, $header);
+                    $header .= $rn;
+					if ($fp) {
+					    fputs ($fp, $header);
+					}
                     $length += strlen($header);
                     $length += strlen($header);
                     while ($tmp = fgets($file, 4096)) {
                     while ($tmp = fgets($file, 4096)) {
                         $tmp = str_replace("\r\n", "\n", $tmp);
                         $tmp = str_replace("\r\n", "\n", $tmp);
@@ -160,10 +162,12 @@ function attachFiles ($fp, $session, $rn="\r\n") {
                          * Check if the last line has newline ($rn) in it
                          * Check if the last line has newline ($rn) in it
                          * and append if it doesn't.
                          * and append if it doesn't.
                          */
                          */
-                        if (feof($fp) && !strstr($tmp, "$rn")){
-                            $tmp .= "$rn";
+                        if ($fp && feof($fp) && !strstr($tmp, "$rn")){
+                            $tmp .= $rn;
+                        }
+                        if ($fp) {
+                            fputs($fp, $tmp);
                         }
                         }
-                        if ($fp) fputs($fp, $tmp);
                         $length += strlen($tmp);
                         $length += strlen($tmp);
                     }
                     }
                 } else {
                 } else {

+ 6 - 6
src/compose.php

@@ -760,12 +760,12 @@ function showInputForm ($session) {
              ' ' .
              ' ' .
              '</td><td align=left bgcolor="' . $color[0] . '">';
              '</td><td align=left bgcolor="' . $color[0] . '">';
         foreach ($attachments as $key => $info) {
         foreach ($attachments as $key => $info) {
-	    if ($info['session'] == $session) { 
-        	$attached_file = "$hashed_attachment_dir/$info[localfilename]";
-        	echo '<input type="checkbox" name="delete[]" value="' . $key . "\">\n" .
-                    $info['remotefilename'] . ' - ' . $info['type'] . ' (' .
-                    show_readable_size(filesize($attached_file)) . ")<br>\n";
-	    }
+    	    if ($info['session'] == $session) { 
+            	$attached_file = "$hashed_attachment_dir/$info[localfilename]";
+            	echo '<input type="checkbox" name="delete[]" value="' . $key . "\">\n" .
+                        $info['remotefilename'] . ' - ' . $info['type'] . ' (' .
+                        show_readable_size( filesize( $attached_file ) ) . ")<br>\n";
+    	    }
         }
         }
 
 
         echo '<input type="submit" name="do_delete" value="' .
         echo '<input type="submit" name="do_delete" value="' .

+ 48 - 48
src/move_messages.php

@@ -47,29 +47,29 @@ function attachSelectedMessages($msg, $imapConnection) {
 
 
 
 
     if (!isset($attachments)) {
     if (!isset($attachments)) {
-	$attachments = array();
-	session_register('attachments');
+	    $attachments = array();
+	    session_register('attachments');
     }
     }
 
 
     if (!isset($composesession)) {
     if (!isset($composesession)) {
-	$composesession = 1;
-	session_register('$composesession');
+	    $composesession = 1;
+	    session_register('$composesession');
     } else {
     } else {
-	$composesession++;
+	    $composesession++;
     }
     }
 
 
-    $hashed_attachment_dir = getHashedDir($username, $attachment_dir,$composesession);
+    $hashed_attachment_dir = getHashedDir($username, $attachment_dir, $composesession);
 
 
     $rem_attachments = array();
     $rem_attachments = array();
     foreach ($attachments as $info) {
     foreach ($attachments as $info) {
-	if ($info['session'] == $composesession) {
+    	if ($info['session'] == $composesession) {
     	    $attached_file = "$hashed_attachment_dir/$info[localfilename]";
     	    $attached_file = "$hashed_attachment_dir/$info[localfilename]";
     	    if (file_exists($attached_file)) {
     	    if (file_exists($attached_file)) {
-        	unlink($attached_file);
+        	    unlink($attached_file);
     	    }
     	    }
-	} else {
-	    $rem_attachments[] = $info;
-	}
+    	} else {
+    	    $rem_attachments[] = $info;
+    	}
     }
     }
 
 
     $attachments = $rem_attachments;
     $attachments = $rem_attachments;
@@ -77,46 +77,46 @@ function attachSelectedMessages($msg, $imapConnection) {
 
 
     $i = 0;
     $i = 0;
     $j = 0;
     $j = 0;
-    
+    $hashed_attachment_dir = getHashedDir($username, $attachment_dir);
     while ($j < count($msg)) {
     while ($j < count($msg)) {
         if (isset($msg[$i])) {
         if (isset($msg[$i])) {
-	    $id = $msg[$i];
-	    $body_a = sqimap_run_command($imapConnection, "FETCH $id RFC822",true, $response, $readmessage);
-	    if ($response = 'OK') {
-		// get subject so we can set the remotefilename
-    		$read = sqimap_run_command ($imapConnection, "FETCH $id BODY.PEEK[HEADER.FIELDS (Subject)]", true, $response, $readmessage);
-    		$subject = substr($read[1], strpos($read[1], ' '));
-		$subject = trim($subject);
-
-		if (isset($subject) && $subject != '') {
-		    $subject = htmlentities($subject);
-		} else {
-		    $subject = _("<No subject>");
-		    $subject = htmlentities($subject);
-		}
-
-		array_shift($body_a);
-		$body = implode('', $body_a);
-		$body .= "\r\n";
-		
-		$localfilename = GenerateRandomString(32, 'FILE', 7);
-		$full_localfilename = "$hashed_attachment_dir/$localfilename";
-	    
-		$fp = fopen( $full_localfilename, 'w');
-		fwrite ($fp, $body);
-		fclose($fp);
-
-		$newAttachment = array();
-		$newAttachment['localfilename'] = $localfilename;
-		$newAttachment['type'] = "message/rfc822";
-	    	$newAttachment['remotefilename'] = "$subject".".eml";
-	    	$newAttachment['session'] = $composesession;
-		$attachments[] = $newAttachment;
-		flush();
+    	    $id = $msg[$i];
+    	    $body_a = sqimap_run_command($imapConnection, "FETCH $id RFC822",true, $response, $readmessage);
+    	    if ($response = 'OK') {
+    		    // get subject so we can set the remotefilename
+        		$read = sqimap_run_command ($imapConnection, "FETCH $id BODY.PEEK[HEADER.FIELDS (Subject)]", true, $response, $readmessage);
+        		$subject = substr($read[1], strpos($read[1], ' '));
+    		    $subject = trim($subject);
+    
+        		if (isset($subject) && $subject != '') {
+        		    $subject = htmlentities($subject);
+        		} else {
+        		    $subject = _("<No subject>");
+        		    $subject = htmlentities($subject);
+        		}
+    
+        		array_shift($body_a);
+        		$body = implode('', $body_a);
+        		$body .= "\r\n";
+        		
+        		$localfilename = GenerateRandomString(32, 'FILE', 7);
+        		$full_localfilename = "$hashed_attachment_dir/$localfilename";
+        	    
+        		$fp = fopen( $full_localfilename, 'w');
+        		fwrite ($fp, $body);
+        		fclose($fp);
+    
+        		$newAttachment = array();
+        		$newAttachment['localfilename'] = $localfilename;
+        		$newAttachment['type'] = "message/rfc822";
+            	$newAttachment['remotefilename'] = "$subject".".eml";
+            	$newAttachment['session'] = $composesession;
+        		$attachments[] = $newAttachment;
+        		flush();
     	    }
     	    }
-    	    $j++;	    
-	}
-	$i++;	
+            $j++;	    
+	    }
+	    $i++;	
 	
 	
     }
     }
     return $composesession;
     return $composesession;