| 
 | 
  Juan Alvarez - 2018-06-07 16:11:57  
Hi Manuel, i have this working in other server, but sometimes i have problem with the size reading of a message. 
 
I put this in a new server and now i can not read any new message, because the size of the message attached of parser is wrong. 
 
I use your example ... 
 
<title>Parsing a message with Manuel Lemos' PHP POP3 and MIME Parser classes</title> 
 
I set the user and password, the mail is reading ok. 
 
But the attachment part here in your decode code is 3510 bytes as you can see, but i download the document from roundcube and the document is 6.347 bytes 
 
Do you know what to change for read (decode) the complete attachment ? 
 
Here is some of the decode process.  
 
["Parts"]=> 
  array(2) { 
    [0]=> 
    array(6) { 
      ["Headers"]=> 
      array(2) { 
        ["content-type:"]=> 
        string(25) "text/plain; charset=utf-8" 
        ["content-transfer-encoding:"]=> 
        string(4) "7bit" 
      } 
      ["Parts"]=> 
      array(0) { 
      } 
      ["Position"]=> 
      int(3031) 
      ["Body"]=> 
      string(37) "Sob_13.xml 
" 
      ["BodyPart"]=> 
      int(1) 
      ["BodyLength"]=> 
      int(37) 
    } 
    [1]=> 
    array(8) { 
      ["Headers"]=> 
      array(3) { 
        ["content-type:"]=> 
        string(67) "application/octet-stream; 	name=Sob_13.xml" 
        ["content-transfer-encoding:"]=> 
        string(6) "base64" 
        ["content-disposition:"]=> 
        string(57) "attachment; 	filename=Sob_13.xml" 
      } 
      ["Parts"]=> 
      array(0) { 
      } 
      ["Position"]=> 
      int(3185) 
      ["FileName"]=> 
      string(35) "Sob_13.xml" 
      ["FileDisposition"]=> 
      string(10) "attachment" 
      ["Body"]=> 
      string(3510) " 
	a large content ...." 
      ["BodyPart"]=> 
      int(2) 
      ["BodyLength"]=> 
      int(3510) 
    } 
  } 
 
Regards, Juan 
  
  Juan Alvarez - 2018-06-07 19:31:18 -  In reply to message 1 from Juan Alvarez 
I see the debug information 
 
$debug=1; /* Output debug information */ 
$html_debug=1; /* Debug information is in HTML */ 
 
and before this echo  
 
echo '<h2>MIME message decoding successful</h2>'."\n"; 
 
there was all the data in bytes in base64 format. 
 
I decoded the data by other program and the content was all 6.347 bytes. The content was complete. 
 
So i set this before decode 
 
$mime->ignore_syntax_errors = 0;  
 
The result was: 
 
MIME message decoding error: truncated message body part 
 
What can i do now ? 
  
  Juan Alvarez - 2018-06-07 19:51:44 -  In reply to message 1 from Juan Alvarez 
I set the warnings: 
 
if($mime->Analyze($decoded[0], $results)) 
{ 
  echo '<h2>Message analysis</h2>'."\n"; 
  echo '<pre>'; 
  var_dump($results); 
  echo '</pre>'; 
			 
			echo 'INICIO WARNINGS ----------------'; 
			for($warning = 0, Reset($mime->warnings); $warning < count($mime->warnings); Next($mime->warnings), $warning++) 
			{ 
				$w = Key($mime->warnings); 
				echo 'Warning: ', $mime->warnings[$w], ' at position ', $w; 
				if($mime->track_lines 
				&& $mime->GetPositionLine($w, $line, $column)) 
					echo ' line '.$line.' column '.$column; 
				echo "\n"; 
			} 
			echo 'FIN WARNINGS ----------------'; 
			 
            }			   
        } 
 
And the result was: 
 
Warning: truncated message body part at position 8192 
 
It seems some configuration with this amount of bytes. 
What do you think ? 
  
  Juan Alvarez - 2018-06-08 15:24:57 -  In reply to message 1 from Juan Alvarez 
The solution was: 
$mime->message_buffer_length = 8000;
 
After reading a lots of articles and php pages.
 
In this one says that fread can not read more than 8192 bytes.
 ibm.com/developerworks/library/os-p ...
 
So i try with setting the attribute message_buffer_length in 8192.
 
This not worked, tried again with 8000 and voila !
 
That worked fine !   
  
   |