如何修改Ejabberd虚拟主机公告发送者的ejabberd昵称?
修改Ejabberd公告发送者昵称的方法
别担心,这不是你的配置出错了——ejabberd发送系统公告时,默认确实会用“ejabberd”作为显示昵称,发送者JID是ejabberd@<你的虚拟主机>,这是它的内置默认行为,只是官方文档没把这个自定义点明确列出来而已。
下面给你两种可行的解决方法,按需选择:
方法1:单次发送时手动指定昵称(临时修改)
如果你只是偶尔发送公告,想要临时换个昵称,可以用ejabberdctl的send_message命令代替默认的announce命令,这样能完全自定义发送者信息:
ejabberdctl send_message chat "notice@your-domain.com" "所有用户" "系统公告" "【重要通知】这里是你的公告内容"
"notice@your-domain.com":替换成你想要的发送者JID(不需要实际注册用户,ejabberd会自动识别为系统实体)"系统公告":这就是接收方会看到的自定义昵称- 最后一段是公告正文
如果用Web管理界面,部分新版本的ejabberd admin后台在发送公告的表单里,会有“发送者”相关的选项,直接填写昵称即可;如果没有的话,用上面的命令行方式更稳妥。
方法2:修改配置永久设置默认昵称
如果希望所有系统公告都默认用自定义昵称,直接修改ejabberd的配置文件即可:
- 打开你的
ejabberd.yml配置文件,找到modules节点下的mod_announce配置(如果没有就手动添加):
modules: mod_announce: access: announce sender: "system-notice@your-domain.com" sender_nickname: "官方通知"
sender:设置你想要的发送者JIDsender_nickname:填写接收方看到的昵称
- 保存配置后,重启ejabberd服务生效:
ejabberdctl restart
之后不管是用命令行还是Web界面发送公告,都会自动使用你设置的昵称了。
注意:如果你的ejabberd版本比较老旧(比如20.x之前),
mod_announce可能不支持sender_nickname参数,这时候优先用方法1,或者考虑升级ejabberd到较新版本。
内容的提问来源于stack exchange,提问作者Dm1
相关产品推荐
相关产品推荐

