added attachment support
[squirrelmail.git] / functions / mailbox.php
index 5e632131a2f88b8a708e2903ebbd5b8f5bdd49fa..056abb2f670fb11f33f391414c6e3272daa8052c 100644 (file)
                $header["CHARSET"] = "us-ascii";
             }
 
+            /** Detects filename if any **/
+            if (strpos(strtolower(trim($line)), "name=")) {
+               $pos = strpos($line, "name=") + 5;
+               $name = trim($line);
+               if (strpos($line, " ", $pos) > 0) {
+                  $name = substr($name, $pos, strpos($line, " ", $pos));
+               } else {
+                  $name = substr($name, $pos);
+               }
+               $name = str_replace("\"", "", $name);
+               $header["FILENAME"] = $name;
+            }
          }
 
          /** REPLY-TO **/
       return decodeMime($body, $bound, $type0, $type1);
    }
 
-   function fetchEntityHeader($imapConnection, &$read, &$type0, &$type1, &$bound, &$encoding, &$charset) {
+   function fetchEntityHeader($imapConnection, &$read, &$type0, &$type1, &$bound, &$encoding, &$charset, &$filename) {
       /** defaults... if the don't get overwritten, it will display text **/
       $type0 = "text";
       $type1 = "plain";
                $type0 = $cont;
             }
 
+            $read[$i] = trim($read[$i]);
             $line = $read[$i];
+            $i++;
             while ( (substr(substr($read[$i], 0, strpos($read[$i], " ")), -1) != ":") && (trim($read[$i]) != "") && (trim($read[$i]) != ")")) {
                str_replace("\n", "", $line);
                str_replace("\n", "", $read[$i]);
                $line = "$line $read[$i]";
                $i++;
+               $read[$i] = trim($read[$i]);
             }
 
             /** Detect the boundary of a multipart message **/
                }
                $charset = str_replace("\"", "", $charset);
             }
+
+            /** Detects filename if any **/
+            if (strpos(strtolower(trim($line)), "name=")) {
+               $pos = strpos($line, "name=") + 5;
+               $name = trim($line);
+               if (strpos($line, " ", $pos) > 0) {
+                  $name = substr($name, $pos, strpos($line, " ", $pos));
+               } else {
+                  $name = substr($name, $pos);
+               }
+               $name = str_replace("\"", "", $name);
+               $filename = $name;
+            }
          }
          $i++;
       }