Empire CMS 內建留言板功能強大,但預設不包含「管理員回覆後自動郵件通知留言用戶」的功能。通過修改後台管理文件與引入郵件發送類,可輕鬆實現此需求。本文提供完整修改步驟與代碼示例,適用於 7.0/7.2/7.5 等主流版本。
e/admin/tool/ReGbook.php)隱藏傳遞用戶 Email 与原留言內容,並新增「是否發送郵件通知」勾選框。e/admin/tool/gbook.php)接收參數,判斷是否勾選通知,調用 EcmsToSendMail() 發送郵件,最後執行原有回覆邏輯。e/admin/tool/ReGbook.php(回覆表單頁)第 43 行左右,在表單內添加兩個隱藏字段,用於傳遞用戶郵箱與原留言內容:
<input name="email" type="hidden" id="email" value="<?=$r[email]?>"> <!-- 用戶郵箱 --> <input name="lytext" type="hidden" id="lytext" value="<?=$r[lytext]?>"> <!-- 原留言內容 -->
第 67 行左右,在表單中增加「通知留言者」勾選項:
<tr bgcolor="#FFFFFF">
<td height="25">通知留言者:</td>
<td height="25">
<input name="checked[]" type="checkbox" id="checked[]" value="1" title="發送 Email 通知留言者">
<span> 留言者 Email: <?=$r[email]?> </span>
</td>
</tr>
e/admin/tool/gbook.php(處理入口)頂部引入郵件發送類(建議放在文件開頭 require 區塊後):
include("../../class/SendEmail.inc.php");
找到原有回覆處理邏輯(約第 30 行):
elseif($enews=="ReGbook") {
$lyid=$_POST['lyid'];
$bid=$_POST['bid'];
$retext=$_POST['retext'];
ReGbook($lyid,$retext,$bid,$logininid,$loginin);
}
替換為帶郵件通知的版本:
elseif($enews=="ReGbook") {
$lyid=$_POST['lyid'];
$bid=$_POST['bid'];
$retext=$_POST['retext'];
$email=$_POST['email']; // 接收用戶郵箱
$lytext=$_POST['lytext']; // 接收原留言內容
$checked=(int)$_POST['checked']; // 是否勾選發送
if($checked) { // 勾選則發送郵件
EcmsToSendMail($email, $lytext, $retext);
}
ReGbook($lyid, $retext, $bid, $logininid, $loginin); // 執行原回覆邏輯
}
EcmsToSendMail 參數說明EcmsToSendMail($to_email, $old_content, $reply_content) 內部會自動構建郵件主題與正文,包含:
如需自定義郵件樣式,可複製 e/class/SendEmail.inc.php 並修改 EcmsToSendMail 函數,或在調用前自行組裝 HTML 郵件再用 EcmsToSendMail 發送。
$HTTP_POST_VARS)。SendNotice()。EcmsToSendMail 中添加 CC 參數。完成上述修改並配置好 SMTP 後,管理員在後台回覆留言時勾選「通知留言者」,用戶即可實時收到郵件通知,大幅提升互動體驗與運營效率。