我正在使用Zend_Mail發送日誌文件的電子郵件,但它發送郵件客戶端不喜歡的不友好的字符。Zend_Mail發送特殊字符在客戶端破壞電子郵件
我的代碼:
<?php
$sBody = "errors.log (>= WARN):\n\n";
$rFile = fopen($sErrorsLog, "r");
while (!feof($rFile))
{
$sLine = fgets($rFile);
$sBody.= $sLine;
}
$oMail = new Zend_Mail();
$oMail->addTo($sTo)
->setFrom($sFrom)
->setSubject($sSubject)
->setBodyText($sMessage);
電子郵件正文我收到:
errors.log(> = WARN):
時間戳| 2010-07-05T09:48:03 10:00消息| O:11: 「ArrayObject的」:3:{S:9: 「異常」,O:32: 「Zend_Controller_Action_Exception來」:7:{S:25:」
錯誤日誌包含(這是從頂部提取的)
timestamp | 2010-07-05T09:48:03 + 10:00 message | O:11:「ArrayObject」:3:{s: 9:「exception」; O:32:「Zend_Controller_Action_Exception」:7:{s:25:「Zend_Exception_previous」; N; s:10:「* message」; s:64:「Action」crgdtgdf「does not exist and was沒有被困在__call()中; s:17:「Exceptionstring」; s:0:「」; s:7:「* code」; i:404; s:7:「* file」; s:73:「 /var/www/development/workspaces/s.rees/library/Zend/Controller/Action.php";s:7: 「*線」; I:485; S:16: 「Exceptiontrace」;一個:4:{ I:0;一個:6:{S:4: 「文件」,S:73: 「/無功/網絡/發展/工作區/ s.rees /庫/的Zend /控制器/ action.php的」; S:4: 「線」; I:515; S:8: 「功能」; S:6: 「__呼叫」; S:5: 「類」; S:22: 「化Zend_Controller_Action」; S:4: 「類型」; S: 2: 「 - >」; S:4: 「ARGS」;一個:2:{I 0,S:14: 「crgdtgdfAction」; I:1; A:0:{}}} I:1;一個: 6:
任何想法如何過濾/編碼電子郵件,以便顯示所有日誌輸出? 我真的需要它通過電子郵件發送所有的細節。
啊,這是有道理的。有沒有簡單的方法去除空字節? – 2010-07-05 02:20:11
我剛剛做了str_replace(「\ 0」,「」,$ sLine);它似乎工作:) 謝謝! – 2010-07-05 02:25:46
這是非常規範的做法,是的。 :) – Charles 2010-07-05 03:02:48