|  | 
  Juan Alvarez - 2018-06-07 16:11:57Hi 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 AlvarezI 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 AlvarezI 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 AlvarezThe 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 !  |