找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 42|回复: 0

[维护日志] [2026-05-12] [文档] [欢迎邮件定位] - 欢迎邮件内容存储位置追踪记录

[复制链接]
  • 打卡等级:本地老炮

9337

威望

7448

金钱

1万

贡献

管理员

自由的灵魂

积分
107434
主题
5630
回帖
26661
注册时间
2003-4-10
最后登录
2026-10-2
发表于 2026-8-26 16:55:27 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×

一、需求背景

需要修改论坛注册后自动发送的欢迎邮件内容,但无法在后台或常规文件中找到修改位置。




二、问题定位过程

2.1 初步排查

排查方向结果
后台「注册与访问控制」有开关,但内容为空
语言包 lang_email.php未找到自定义内容
模板文件 email_register.htm是验证邮件模板,非欢迎邮件


2.2 调试方法

在 /source/function/function_mail.php 的 sendmail() 函数中添加调用栈追踪:

  1. if(strpos($subject, '欢迎注册') !== false) {
  2.     $backtrace = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS);
  3.     file_put_contents(DISCUZ_ROOT . 'data/log/email_debug.log', print_r($backtrace, true), FILE_APPEND);
  4. }
复制代码


2.3 定位结果

调用栈显示欢迎邮件由 class_member.php 中的 sendmail_cron() 发送。




三、最终存储位置

欢迎邮件内容存储在数据库 pre_common_setting 表中:

字段说明示例值
welcomemsg发送方式3(1=站内通知,2=邮件,3=两者)
welcomemsgtitle邮件标题欢迎注册点拨论坛(www.dianbo.org)!
welcomemsgtxt邮件正文尊敬的{username}...


验证 SQL

  1. SELECT skey, svalue FROM pre_common_setting WHERE skey IN ('welcomemsg', 'welcomemsgtitle', 'welcomemsgtxt');
复制代码





四、修改方法

方法一:后台修改(推荐)

路径:后台 → 全局 → 注册与访问控制 → 注册

找到「欢迎信息内容」文本框修改即可。

方法二:SQL 直接修改

  1. UPDATE pre_common_setting SET svalue = '新内容' WHERE skey = 'welcomemsgtxt';
复制代码


支持的变量

变量说明
{username}用户名
{time}发送时间
{sitename}网站名称
{bbname}站点名称
{adminemail}管理员 Email
{siteurl}网站地址





五、技术沉淀

项目经验总结
查找未知配置使用 debug_backtrace() 追踪调用链,快速定位源代码位置
数据存储习惯Discuz! 将配置内容存储在数据库而非文件,需注意区分
变量替换机制欢迎邮件支持 {变量} 格式,可灵活定制内容





六、env-base 分支更新

已在「邮件系统」章节补充欢迎邮件存储位置说明。
不懂就搜!点此搜点拨论坛。如果本坛没有,请尝试点此问AI,或跟帖提问。
发帖前注意看置顶帖。
不定期借助AI对点拨论坛陈年老帖进行挖坟回复,打扰勿怪!
自己麻烦些,让帮你的人轻松些
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|点拨论坛 |网站地图

GMT+8, 2026-10-2 02:06 , Processed in 0.046707 second(s), 5 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表