소스 검색

Fixed bug: Charset was not taken into account for single-part messages.

gustavf 25 년 전
부모
커밋
ac4d51a18e
2개의 변경된 파일5개의 추가작업 그리고 5개의 파일을 삭제
  1. 3 3
      functions/imap_messages.php
  2. 2 2
      functions/mime.php

+ 3 - 3
functions/imap_messages.php

@@ -86,7 +86,7 @@
       $message["INFO"]["ID"] = $id;
       $message["INFO"]["MAILBOX"] = $mailbox;
       $message["HEADER"] = sqimap_get_message_header($imap_stream, $id);
-      $message["ENTITIES"] = sqimap_get_message_body($imap_stream, $message["HEADER"]["BOUNDARY"], $id, $message["HEADER"]["TYPE0"], $message["HEADER"]["TYPE1"], $message["HEADER"]["ENCODING"]);
+      $message["ENTITIES"] = sqimap_get_message_body($imap_stream, $message["HEADER"]["BOUNDARY"], $id, $message["HEADER"]["TYPE0"], $message["HEADER"]["TYPE1"], $message["HEADER"]["ENCODING"], $message["HEADER"]["CHARSET"]);
       return $message;
    }
 
@@ -282,7 +282,7 @@
    /******************************************************************************
     **  Returns the body of a message.
     ******************************************************************************/
-   function sqimap_get_message_body ($imap_stream, $bound, $id, $type0, $type1, $encoding) {
+   function sqimap_get_message_body ($imap_stream, $bound, $id, $type0, $type1, $encoding, $charset) {
       fputs ($imap_stream, "a001 FETCH $id:$id BODY[TEXT]\r\n");
       $read = sqimap_read_data ($imap_stream, "a001", true, $response, $message);
        
@@ -297,6 +297,6 @@
       }
       $body = $bodytmp;
 
-      return decodeMime($body, $bound, $type0, $type1, $encoding);
+      return decodeMime($body, $bound, $type0, $type1, $encoding, $charset);
    }
 ?>

+ 2 - 2
functions/mime.php

@@ -14,7 +14,7 @@
    /** This is the first function called.  It decides if this is a multipart
        message or if it should be handled as a single entity
     **/
-   function decodeMime($body, $bound, $type0, $type1, $encoding, &$entities) {
+   function decodeMime($body, $bound, $type0, $type1, $encoding, $charset, &$entities) {
       if ($type0 == "multipart") {
          $bound = trim($bound);
          $i = 0;
@@ -53,7 +53,7 @@
                      $y++;
                      $j++;
                   }
-                  $ent = decodeMime($ent_body, $ent_bound, $ent_type0, $ent_type1, $entities);
+                  $ent = decodeMime($ent_body, $ent_bound, $ent_type0, $ent_type1, $charset, $entities);
                   $entities = $ent;
                } else {
                   $j++;