海洋CMS会员过期提醒怎么设置?到期邮件通知

域名注册
域名注册 正式会员超兽战士 👑年卡会员
发布于 2026-10-07 15:16 ·1 浏览 ·0 回复

海洋CMS 的会员到期邮件提醒,不是后台勾一个开关就能完成的:它要拆成「查出快到期会员」和「发出去邮件」两步,前者靠一条 SQL,后者靠 SMTP 或第三方发信 API,最后用服务器的计划任务(crontab 里的一条定时命令)每天跑一次。下面按这四步给出可直接套用的做法。

海洋CMS 会员到期提醒的整体思路是什么?

结论:整条链路是「会员表存到期时间 → 定时脚本查表 → 脚本调用 SMTP 发信 → 记录已发状态防止重复」。

海洋CMS 用 MySQL 存数据,默认表前缀 sea_,会员信息在会员表(用 phpMyAdmin 打开数据库就能确认表名和字段名)。会员的到期时间通常以 int 时间戳或 datetime 存在会员表的某个字段上,先把这个字段名确定下来,后面所有 SQL 都围绕它写。

提醒逻辑本身很简单:每天固定时间查一次「到期时间在 N 天内」的会员,给他们发一封邮件,然后在日志表里打一个标记,避免第二天重复发。

怎么查出「即将到期」的会员?

结论:用 SQL 按到期时间区间筛选,同时过滤掉没填邮箱、已停用的账号。

如果到期时间字段是 int 时间戳,7 天内到期的查询写成:

SELECT m_id, m_name, m_email FROM sea_members
WHERE m_email <> '' AND m_email LIKE '%@%'
  AND m_endtime BETWEEN UNIX_TIMESTAMP() AND UNIX_TIMESTAMP() + 7*86400;

如果字段是 datetime 类型,把条件换成 m_endtime BETWEEN NOW() AND DATE_ADD(NOW(), INTERVAL 7 DAY)。

关键点有三个:一是必须过滤 m_email 为空或格式不对的记录,否则脚本会对着空地址发信报错;二是建议做两级提醒,比如到期前 7 天和到期前 1 天各发一次,命中率比只发一次高;三是别把已经过期的会员漏掉,可以再加一条 3 天内已过期的查询做「已过期」通知。

邮件怎么发出去?SMTP 参数怎么填?

结论:用 PHPMailer 走 SMTP 最稳,QQ 邮箱用 465 端口 + SSL,企业邮箱常用 587 端口 + STARTTLS。

不推荐直接用 PHP 的 mail() 函数,它依赖服务器本地 sendmail,国内云主机上大概率发不出去或被判垃圾邮件。装 PHPMailer(Composer 执行 composer require phpmailer/phpmailer)后,核心参数就四项:SMTP 主机、端口、账号、授权码。注意 QQ 邮箱、163 邮箱填的是「授权码」而不是登录密码,需要在邮箱后台的账号设置里单独开启 SMTP 服务并生成。

发信频率也要控制:单账号一天发信量有上限(QQ 邮箱普通账号约 50 封/天),会员量大就分批发送,每封之间 sleep(1),或者直接接阿里云邮件推送、SendCloud 这类服务。

定时任务怎么配?

结论:在服务器加一条 crontab,每天上午 9 点执行一次提醒脚本。

命令形如:

0 9 * * * /usr/bin/php /www/wwwroot/你的站点/cron_member_expire.php >> /tmp/member_mail.log 2>&1

0 9 * * * 表示每天 09:00 触发,后面的 >> 把输出写进日志,方便排查。宝塔面板用户可以在「计划任务」里选「Shell 脚本」,周期选「每天」,时间填 9 点,把同样的命令粘进去即可。脚本里注意用绝对路径引入数据库配置,别依赖 Web 环境。

防重复发的做法:新建一张 sea_member_mail_log 表,字段至少包含 m_id、type(7天/1天/已过期)、send_time,发信前先查这张表当天有没有记录,发完立即插入。

只想要站内提示,不做邮件行不行?

结论:可以,而且成本更低——在会员登录后的入口文件里判断到期时间,小于 0 就跳转到续费页并弹提示。

这种方式不需要 SMTP、不需要计划任务,改一个判断逻辑就行,适合会员量小或者邮箱收集率低的站点。缺点是会员不登录就看不到提醒。想要「不登录也能触达」,邮件、短信、站内信三条路里,邮件是唯一零成本且可自动化的。


总结一下:先确认会员表里到期时间字段的名字,用 SQL 筛出 7 天内到期且邮箱有效的会员,用 PHPMailer 走 SMTP 发信,再用 crontab 每天跑一次,并建一张日志表防止重复发送。整套配置不依赖后台开关,全在自己的服务器上完成。

版权声明:本文来自 GJ站长论坛《海洋CMS会员过期提醒怎么设置?到期邮件通知》
原文链接:https://www.gj0.com/thread-364.html
转载请注明出处并保留本声明;内容仅代表作者观点,与本站立场无关。若本文涉嫌侵权,请联系本站处理。

全部回复 0

还没有回复,来抢沙发~