[英]PHP script piping email parse
我正在做這個管道php腳本,該腳本獲取到達的電子郵件並對其進行解析並顯示出來。 我使用了本教程: http : //www.damnsemicolon.com/php/parse-emails-in-php-with-email-piping-part-1 (及以下),我嘗試使用標准電子郵件已發送到我的服務器,並且運行良好,但是后來我嘗試了另一個,但出現很多錯誤。 我用了print_r($ decoded); 向我展示電子郵件的所有不同部分,而不是獲得完全解析的電子郵件,電子郵件的所有內容都轉到$ decode [0] ['body]; 為什么會這樣呢? (我不會發布代碼,因為它與教程相同)
print_r($decode)= Array (
[0] => Array (
[Headers] => Array ( )
[Parts] => Array ( )
[Position] => 0
[Body] => From jtferreira@teste.local Thu Apr 26 12:33:44 2012 Received: from [192.168.1.92] by ubuntuserver.lan with esmtp (Exim 4.76) (envelope-from ) id 1SNMxE-0000VB-TR for jtferreira@teste.local; Thu, 26 Apr 2012 12:33:44 +0100 Message-ID: <4F993299.8040605@teste.local> Date: Thu, 26 Apr 2012 12:33:45 +0100 From: =?ISO-8859-1?Q?=22Jo=E3o_Ferreira_=28m=E1quina_virtual=29=22?= User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:11.0) Gecko/20120327 Thunderbird/11.0.1 MIME-Version: 1.0 To: jtferreira@teste.local Subject: Sample Email Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 8bit It's the same?
[BodyPart] => 1
[BodyLength] => 744
)
)
謝謝。
正如Mario所說,問題出在UTF 8-BOM。 如果有人遇到此問題,建議您使用以下代碼:
<?php
// substitua pelo caminho para o arquivo que deseja limpar
$file = "C:/wamp/www/wordpress/wp-content/themes/basic-gray/lib/langs.php";
print removeUTF8BOM($file) ? 'BOM removido!' : 'Não havia BOM a ser removido...';
function removeUTF8BOM($fil) {
$newcontent = '';
$first = false;
$fh = fopen($fil, 'r');
while($part = fread($fh, 1024)) {
if(!$first) {
if(preg_match('/^\xEF\xBB\xBF/', $part)) {
$newcontent = preg_replace('/^\xEF\xBB\xBF/', "", $part);
} else {
fclose($fh);
return false;
}
$first = true;
} else $newcontent .= $part;
}
fclose($fh);
$fh = fopen($fil, 'w');
fwrite($fh, $newcontent);
fclose($fh);
return true;
}
?>
(http://www.caugb.com.br/2009/07/remover-o-bom-de-arquivos-em-utf-8/)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.