1、查看 Settings 邮件报警插件的 include\mailer.php 中默认编码设置为 UTF-8。 $this->Config["Mail"]["CharSet"] = "UTF-8";
2、修改 thold_functions.php,找到以下位置 $message = str_replace('
', $subject, $message);在这行下添加以下代码 $subject = "=?UTF-8?B?".base64_encode($subject)."?=";保证 UTF-8邮件标题不乱码。
3、修改 polling.php,位置/var/www/html/plugins/thold/includes/polling.php 宕机恢复通知模板$msg = $subject; 在这两行下分别添加代码 $msg = iconv("UTF-8", "GB2312//IGNORE", $msg); 宕机报警模板$msg =... $msg = iconv("UTF-8", "GB2312//IGNORE", $msg); //上边这句代码代表把邮件正文编码由 UTF-8转换为 GB2312,ignore 的意思是忽略转换时 的错误,如果没有 ignore 参数,iconv 在转换个别字符如"—"到 gb2312时会出错,然后停 止转换后边的字符。 以上功能也可使用 mb_convert_encoding 代替,由于 PHP5 的 WINDOWS 版本中已经默认集成 开启了 iconv 功能, 所以更为简单高效一些。 如果使用 mb_convert_encoding 转换编码需要 修改 php.ini 开启 php_mbstring 扩展。;extension=php_mbstring.dll 去掉注释符“;”, 需要重启 Apache。 $msg = mb_convert_encoding($msg, "GB2312", "UTF-8"); //代表 UTF-8 To GB2312 其实 php_mbstring 的 mb_convert_encoding 非常强大,它可以自 动识别文件的编码,可以设置源编码格式为多种编码,根据设定的顺序进行转换,如果设定 的源编码和目的编码一样则不改变字符串的编码格式。 此处的用途比较单一所以采用小巧的 iconv。 4、CactiEZ 设置 (Mail / DNS)---From Name 乱码: 文件位置:/thold_functions.php
if ($from == '') { $from = read_config_option('thold_from_email'); $fromname = read_config_option('thold_from_name'); $fromname = iconv("UTF-8", "GB2312//IGNORE", $fromname); 需要添加 代码。