在帝国 CMS 中使用 QQ 邮箱发送通知邮件,需要配置系统的邮件发送参数并确保服务器支持邮件发送功能。以下是详细的设置步骤:

步骤 1:准备 QQ 邮箱授权码

  1. 登录 QQ 邮箱,进入「设置」→「账户」
  2. 找到「POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV 服务」
  3. 开启「SMTP 服务」,按提示获取授权码(不是 QQ 密码,是专门用于第三方登录的密码)

步骤 2:配置帝国 CMS 邮件参数

  1. 登录帝国 CMS 后台,进入「系统」→「系统设置」→「邮件参数设置」
  2. 按以下参数配置:
    • 邮件发送模式:选择「SMTP 服务器发送」
    • SMTP 服务器地址smtp.qq.com
    • SMTP 服务器端口465(SSL 加密端口)
    • SMTP 服务器验证:选择「需要验证」
    • SMTP 用户名:你的 QQ 邮箱地址(如123456@qq.com
    • SMTP 密码:填入前面获取的授权码
    • 发件人邮箱:与 SMTP 用户名一致
    • 发件人名称:可自定义(如网站名称)

步骤 3:修改帝国 CMS 邮件发送函数(解决 SSL 问题)

默认情况下,帝国 CMS 可能不支持 SSL 连接,需要修改邮件发送函数:
<?php
    // 找到SendEmail函数,替换以下代码
    function SendEmail($smtpserver, $smtpserverport, $smtpusermail, $smtpuser, $smtppass, $mailtype, $email, $subject, $body, $smtpauth = true) {
        require_once(ECMS_PATH . 'e/class/phpmailer/class.phpmailer.php');
        $mail = new PHPMailer();
        $mail->IsSMTP();
        $mail->SMTPAuth = $smtpauth;
        $mail->Host = $smtpserver;
        $mail->Port = $smtpserverport;
        
        // 新增QQ邮箱SSL支持
        if($smtpserverport == 465) {
            $mail->SMTPSecure = 'ssl';
        }
        
        $mail->Username = $smtpuser;
        $mail->Password = $smtppass;
        $mail->From = $smtpusermail;
        $mail->FromName = $smtpusermail;
        $mail->AddAddress($email);
        $mail->Subject = $subject;
        $mail->Body = $body;
        $mail->IsHTML($mailtype);
        return $mail->Send();
    }
    ?>

步骤 4:测试邮件发送功能

  1. 后台进入「系统」→「数据更新中心」→「发送测试邮件」
  2. 输入接收邮件地址,点击发送测试
  3. 若收到测试邮件,说明配置成功

常见问题解决

  1. 发送失败
    • 检查授权码是否正确(重新生成一次授权码试试)
    • 确认服务器是否开放 465 端口(联系空间商)
    • 检查 PHP 是否安装 openssl 扩展(需要支持 SSL)
  2. 邮件进入垃圾箱
    • 邮件内容避免敏感词
    • 增加邮件模板的规范性(如添加网站签名、 unsubscribe 链接)
  3. 大批量发送问题
    • QQ 邮箱有发送频率限制,避免短时间内发送大量邮件
    • 考虑使用专业邮件服务(如 SendCloud、阿里云邮件推送)
以上设置,帝国 CMS 就能正常使用 QQ 邮箱发送通知邮件了,包括会员注册通知、找回密码邮件、订单通知等系统自动发送的邮件。