phplist 是功能完善的開源郵件行銷平台,支援多清單管理、訂閱/退訂機制、彈跳郵件處理、統計報表等企業級功能,適合電子報發行、產品推廣、會員通知等場景。
mail() 或 SMTP 擴充# 下載最新穩定版(以 3.6.x 為例) wget https://sourceforge.net/projects/phplist/files/phplist/3.6.10/phplist-3.6.10.tgz tar -xzf phplist-3.6.10.tgz # 將 public_html/lists 移至網站根目錄 mv phplist-3.6.10/public_html/lists /var/www/html/
編輯 lists/config/config.php 關鍵參數:
// 資料庫連線 $database_host = 'localhost'; $database_name = 'phplist_db'; $database_user = 'phplist_user'; $database_password = 'strong_password'; // 若需支援中文,建議資料庫排序規則設為 utf8mb4_general_ci // 建立資料庫指令: // CREATE DATABASE phplist_db CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
瀏覽 https://your-domain/lists/admin/,系統偵測未初始化資料庫,點選「Initialise Database」自動建立資料表。若 user_blacklist_data 表報錯(通常因 varchar(255) 索引長度超過 InnoDB 限制),可修改 lists/admin/structure.php 將長度改為 233:
"user_blacklist" => array(
"email" => array("varchar(233) not null unique","Email"),
"added" => array("datetime","When added to blacklist"),
"index_1" => array("emailidx (email)",""),
)
隨後 Drop 資料庫重建並再次初始化即可。
同樣在 config.php 中:
// 關閉測試模式(必須設為 0 才會真實發信)
define('TEST', 0);
// SMTP 伺服器設定(以 Sohu 為例)
define('PHPMAILERHOST', 'smtp.sohu.com');
$phpmailer_smtpuser = 'your_account@sohu.com';
$phpmailer_smtppassword = 'your_smtp_password';
// 若使用 Gmail,請參考《phplist 整合 PHPMailer 透過 Gmail SMTP 發信完整教學》進行額外 SSL 配置
bounce 表以維持資料庫效能cron 定時處理發信佇列:* * * * * /usr/bin/php /var/www/html/lists/admin/index.php -c /var/www/html/lists/config/config.php -pprocessqueue > /dev/null 2>&1