From: <lei...@us...> - 2009-09-30 10:34:28
|
Author: leithoff Date: Wed Sep 30 12:34:13 2009 New Revision: 27962 URL: http://www.egroupware.org/viewvc/egroupware?rev=27962&view=rev Log: winmail.dat issue: try to use tnef (tnef Projekt (sf.net/projects/tnef/)) before ytnef Modified: trunk/felamimail/inc/class.bofelamimail.inc.php Modified: trunk/felamimail/inc/class.bofelamimail.inc.php URL: http://www.egroupware.org/viewvc/egroupware/trunk/felamimail/inc/class.bofelamimail.inc.php?rev=27962&r1=27961&r2=27962&view=diff ============================================================================== --- trunk/felamimail/inc/class.bofelamimail.inc.php (original) +++ trunk/felamimail/inc/class.bofelamimail.inc.php Wed Sep 30 12:34:13 2009 @@ -463,21 +463,28 @@ // decode winmail.dat if ( !file_exists( "$dir/winmail.dat" ) ) { - mkdir( $dir, 0700, true ); + @mkdir( $dir, 0700, true ); file_put_contents( "$dir/winmail.dat", $attachment['attachment'] ); + } + if (exec("which tnef")) // use tnef if exsting, as it gives better results.. + { + exec( "cd $dir && tnef --save-body --overwrite -C $dir -f ./winmail.dat" ); + } + elseif (exec("which ytnef")) + { exec( "cd $dir && ytnef -f . winmail.dat" ); } - // list contents $files = scandir( $dir ); foreach ( $files as $num => $file ) { +error_log($dir."/".$file); if ( filetype( "$dir/$file" ) != 'file' || $file == 'winmail.dat' ) continue; if ( $_filenumber > 0 && $_filenumber != $num ) continue; $type = $mime->filename2mime($file); $attachments[] = array( 'is_winmail' => $num, - 'name' => $file, + 'name' => self::decode_header($file), 'size' => filesize( "$dir/$file"), 'partID' => $_partID, 'mimeType' => $type, @@ -487,7 +494,7 @@ unlink($dir."/".$file); } if (file_exists($dir."/winmail.dat")) unlink($dir."/winmail.dat"); - if (file_exists($dir)) rmdir($dir); + if (file_exists($dir)) @rmdir($dir); return $_filenumber > 0 ? $attachments[0] : $attachments; } return false; |