1. PHP / Говнокод #11849

    +54

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    function mail_mime_to_array($imap,$mid,$parse_headers=false) 
             { 
    
                 $mail = imap_fetchstructure($imap,$mid);
    
                    // ИМЕННО ПОЧИНИЛ
                    if(!isset($mail->parts))  {
    
                            $mail->parts = array();
                            $mail->parts[0]['type'] = $mail->type;
                            $mail->parts[0]['encoding'] = $mail->encoding;
                            $mail->parts[0]['ifsubtype'] = $mail->ifsubtype;
                            $mail->parts[0]['subtype'] = $mail->subtype;
                            $mail->parts[0]['ifdescription'] = $mail->ifdescription;
                            $mail->parts[0]['ifid'] = $mail->ifid;
                            $mail->parts[0]['bytes'] = $mail->bytes;
                            $mail->parts[0]['ifdisposition'] = $mail->ifdisposition;
                            $mail->parts[0]['disposition'] = $mail->disposition;
                            $mail->parts[0]['ifdparameters'] =$mail->ifdparameters;
                            $mail->parts[0]['dparameters'] =$mail->dparameters;
                            $mail->parts[0]['ifparameters'] =$mail->ifparameters;
                            $mail->parts[0]['parameters'] =$mail->parameters;
    
                    }
    
                 $mail = mail_get_parts($imap,$mid,$mail,0); 
    
      
                    // ИМЕННО ПОЧИНИЛ
                    if(!isset($mail->parts))  {
    
                        $mail[1]['data'] = imap_base64($mail[1]['data']);  
                    }
    
                 if ($parse_headers) $mail[0]["parsed"]=mail_parse_headers($mail[0]["data"]); 
    
                 return($mail); 
    
             }

    мое говно-детище

    АЙФОН к примеру не отправляет заголовки и я не мог правильно под него запарсить вложения к почтовому сообщению.
    Решил не париться и именно починил, взял скотч решил эту проблему, просто залепил ее.

    Самое обидное, что даже не знаю как ее по нормальному решить.

    Запостил: nepster, 01 Октября 2012

    Комментарии (5) RSS

    • Ифун такой ифун. Он вообще заголовки не шлет, или присылает только минимальный комплект?
      Ответить
      • >Ифун
        Айфно
        Ответить
      • $mail = imap_fetchstructure($imap,$mid);


        на выходе от IOS:
        stdClass Object
        (
            [type] => 5
            [encoding] => 3
            [ifsubtype] => 1
            [subtype] => JPEG
            [ifdescription] => 0
            [ifid] => 0
            [bytes] => 51962
            [ifdisposition] => 1
            [disposition] => INLINE
            [ifdparameters] => 1
            [dparameters] => Array
                (
                    [0] => stdClass Object
                        (
                            [attribute] => FILENAME
                            [value] => image.jpeg
                        )
        
                )
        
            [ifparameters] => 1
            [parameters] => Array
                (
                    [0] => stdClass Object
                        (
                            [attribute] => NAME
                            [value] => image.jpeg
                        )
        
                )
        
        )
        Ответить
        • с пк код не влазит, там 1 это общее, тоесть сколько всего байт весит письмо. сколько вложений и сами вложения находятся в parts. А parts, это такой же массив из вложений.
          Ответить
    • > Решил не париться и именно починил, взял скотч решил эту проблему, просто залепил ее.

      Апгрейд или ремонт? Все захреначим...синей изолентой(c)
      Ответить

    Добавить комментарий