首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 相關知識

Empire CMS 留言板回覆自動發送 Email 通知功能實現教程

     編輯:PHP 相關知識

Empire CMS 留言板回覆郵件通知開發指南

Empire CMS 內建留言板功能強大,但預設不包含「管理員回覆後自動郵件通知留言用戶」的功能。通過修改後台管理文件與引入郵件發送類,可輕鬆實現此需求。本文提供完整修改步驟與代碼示例,適用於 7.0/7.2/7.5 等主流版本。

一、修改思路概覽

  1. 在回覆表單頁面(e/admin/tool/ReGbook.php)隱藏傳遞用戶 Email 与原留言內容,並新增「是否發送郵件通知」勾選框。
  2. 在留言板處理入口(e/admin/tool/gbook.php)接收參數,判斷是否勾選通知,調用 EcmsToSendMail() 發送郵件,最後執行原有回覆邏輯。

二、具體修改步驟

1. 修改 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>

2. 修改 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 發送。

四、注意事項與常見問題

  1. 郵件服務器配置:需在後台「系統參數 → FTP/郵件設置」正確配置 SMTP 服務器、發信帳號、密碼、端口(推薦 465 SSL 或 587 TLS)。
  2. 防垃圾箱:發信域名請配置 SPF、DKIM、DMARC 記錄;郵件內容避免過多營銷詞彙。
  3. 版本兼容:Empire CMS 7.0+ 均適用;若為 6.6 版本,變量獲取方式可能略有差異(如 $HTTP_POST_VARS)。
  4. 備份優先:修改前請備份兩個文件,出現語法錯誤可快速回滾。

五、進階擴展建議

  • 加入「站內信同步通知」:調用會員消息 API SendNotice()。
  • 支持多管理員抄送:在 EcmsToSendMail 中添加 CC 參數。
  • 記錄發送日誌:在發送前後寫入自定義表,便於審計與排查。

完成上述修改並配置好 SMTP 後,管理員在後台回覆留言時勾選「通知留言者」,用戶即可實時收到郵件通知,大幅提升互動體驗與運營效率。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved