lifetype的shoutbox插件挺好用,挺好玩兒的,我當時也是搞了好久搞不好,後來看到mark的文章說要在全局設置裡面的模板設置中把模板緩存功能去掉,後來終於搞定了。一开始我以为是ajax的,用了才知道原来不是,不过没关系,也算是挺方便的。

可是在使用中還碰到個問題,就是我在管理介面中設置了郵件提醒,每每用outlook收到提醒郵件時裡面的編碼都是亂碼,每次都要去改阅读邮件的编码很麻烦,於是想想把這個問題从根本上解決。


首先我去plugins/shoutbox/class中找,不太熟悉,因此grep “mail”了一下,找到是dao/shoutbox.class.php。

打開:plugins/shoutbox/class/dao/shoutbox.class.php

發現是通過函數notifyUser發送郵件的,對郵件內容沒有經過編碼處理,$message->setBody($body);於是通過找到lifetype根目錄下class/dao /articlenotifications.class.php中,參考了它的寫法。

於是在shoutbox.class.php中也依樣畫葫蘆,在開始部分多引入兩個php程序

include_once( PLOG_CLASS_PATH.”class/mail/emailmessage.class.php” );
include_once( PLOG_CLASS_PATH.”class/mail/emailservice.class.php” );

然後找到:

$message->setBody($body);

在它後面加上一行:

$message->setCharset(“utf-8”);

問題解決,發送郵件時就采用utf-8編碼,其實嚴格來說應該用取得charset變量的值,不過我是自己用的,所以偷懶了。