当前位置:论坛首页 > Linux面板 > 讨论

BT面板7.9.x自定义邮箱通道通知发送方昵称

发表在 Linux面板2022-11-25 19:59 [复制链接] 0 3155

本帖最后由 rctess 于 2022-11-25 20:00 编辑

注意

不当操作可能导致面板无法正常使用

建议先对原始文件进行备份后进行操作



在之前的版本中,通过对程序的脚本代码进行分析修改,实现了简单的通知发送方昵称自定义操作(参考:Linux面板-讨论-自定义邮件通知中发件方昵称
在7.x版本的更新中,宝塔面板改变了邮箱发送功能模块的脚本文件位置
现提供相关的改动方案

文件位置/www/server/panel/class/msg/mail_msg.py

----发送时自定义昵称----
代码特征:data['From'](文件内搜索即可直达)
改动方案
原始
  1. data['From'] = formataddr([self.__mail_config['send']['qq_mail'], self.__mail_config['send']['qq_mail']])
复制代码
修改
  1. data['From'] = formataddr([self.__mail_config['send']['nickname'], self.__mail_config['send']['qq_mail']])
复制代码
----接受昵称设置----代码特征:set_config(文件内搜索即可直达)
改动方案
原始
  1. if not hasattr(get, 'qq_mail') or not hasattr(get, 'qq_stmp_pwd') or not hasattr(get, 'hosts') or not hasattr(get, 'port'):  return public.returnMsg(False, '请填写完整信息')
  2.             mail_config = {
  3.                 "qq_mail": get.qq_mail.strip(),
  4.                 "qq_stmp_pwd": get.qq_stmp_pwd.strip(),
  5.                 "hosts": get.hosts.strip(),
  6.                 "port": get.port
  7.             }
复制代码

修改
  1. if not hasattr(get, 'qq_mail') or not hasattr(get, 'qq_stmp_pwd') or not hasattr(get, 'hosts') or not hasattr(get, 'port'):  return public.returnMsg(False, '请填写完整信息')
  2.             nickname = get.qq_mail.strip()
  3.             if hasattr(get, 'nickname'):
  4.                 nickname = get.nickname.strip()
  5.             mail_config = {
  6.                 "nickname": nickname,
  7.                 "qq_mail": get.qq_mail.strip(),
  8.                 "qq_stmp_pwd": get.qq_stmp_pwd.strip(),
  9.                 "hosts": get.hosts.strip(),
  10.                 "port": get.port
  11.             }
复制代码


文件位置/www/server/panel/class/msg/mail.html

----UI侧输入组件----
代码特征:line sender_view(文件内搜索即可直达)
改动方案

原始
  1. <div class="line">
  2.                 <span class="tname">发送人邮箱</span>
  3.                 <div class="info-r">
  4.                     <input name="sender_mail_value" class="bt-input-text mr5" type="text" style="width: 300px">
  5.                 </div>
  6.             </div>
复制代码

修改
  1. <div class="line">
  2.                 <span class="tname">发送时昵称</span>
  3.                 <div class="info-r">
  4.                     <input name="sender_mail_nickname" class="bt-input-text mr5" type="text" style="width: 300px">
  5.                 </div>
  6.             </div>
  7.             <div class="line">
  8.                 <span class="tname">发送人邮箱</span>
  9.                 <div class="info-r">
  10.                     <input name="sender_mail_value" class="bt-input-text mr5" type="text" style="width: 300px">
  11.                 </div>
  12.             </div>
复制代码
----UI侧表单提交----
代码特征:sender_submit: function ()(文件内搜索即可直达)
改动方案

原始
  1. var that = this;
  2.             var _email = $('input[name=sender_mail_value]').val(),
  3.                 _passW = $('input[name=sender_mail_password]').val(),
  4.                 _server = $('input[name=sender_mail_server]').val(),
  5.                 _port = $('input[name=sender_mail_port]').val();
  6.             
  7.             if (_email == '') return layer.msg('邮箱地址不能为空!', { icon: 2 });
  8.             if (_passW == '') return layer.msg('STMP密码不能为空!', { icon: 2 });
  9.             if (_server == '') return layer.msg('STMP服务器地址不能为空!', { icon: 2 });
  10.             if (_port == '') return layer.msg('请输入有效的端口号', { icon: 2 });

  11.             var loadTs = layer.msg('正在生成邮箱通道中,请稍候...', { icon: 16, time: 0, shade: [0.3, '#000'] });
  12.             $.post('/config?action=set_msg_config&name=mail', {
  13.                 send: 1,
  14.                 qq_mail: _email,
  15.                 qq_stmp_pwd: _passW,
  16.                 hosts: _server,
  17.                 port: _port
  18.             }, function (rdata) {
  19.                 layer.close(loadTs);
  20.                 if (rdata.status) that.refresh_data();
  21.                 layer.msg(rdata.msg, { icon: rdata.status ? 1 : 2 });
  22.             });
复制代码
修改
  1. var that = this;
  2.             var _nickname = $('input[name=sender_mail_nickname]').val(),
  3.                 _email = $('input[name=sender_mail_value]').val(),
  4.                 _passW = $('input[name=sender_mail_password]').val(),
  5.                 _server = $('input[name=sender_mail_server]').val(),
  6.                 _port = $('input[name=sender_mail_port]').val();
  7.             
  8.             if (_nickname == '') _nickname = _email;
  9.             if (_email == '') return layer.msg('邮箱地址不能为空!', { icon: 2 });
  10.             if (_passW == '') return layer.msg('STMP密码不能为空!', { icon: 2 });
  11.             if (_server == '') return layer.msg('STMP服务器地址不能为空!', { icon: 2 });
  12.             if (_port == '') return layer.msg('请输入有效的端口号', { icon: 2 });

  13.             var loadTs = layer.msg('正在生成邮箱通道中,请稍候...', { icon: 16, time: 0, shade: [0.3, '#000'] });
  14.             $.post('/config?action=set_msg_config&name=mail', {
  15.                 send: 1,
  16.                 nickname: _nickname,
  17.                 qq_mail: _email,
  18.                 qq_stmp_pwd: _passW,
  19.                 hosts: _server,
  20.                 port: _port
  21.             }, function (rdata) {
  22.                 layer.close(loadTs);
  23.                 if (rdata.status) that.refresh_data();
  24.                 layer.msg(rdata.msg, { icon: rdata.status ? 1 : 2 });
  25.             });
复制代码
----UI侧表单更新----
代码特征:get_sender_data: function ()(文件内搜索即可直达)
改动方案

原始
  1. var send = data.send;
  2.                
  3.                 var mail_ = send.qq_mail || '',
  4.                     stmp_pwd_ = send.qq_stmp_pwd || '',
  5.                     hosts_ = send.hosts || '',
  6.                     port_ = send.port || '';

  7.                 $('input[name=sender_mail_value]').val(mail_)
  8.                 $('input[name=sender_mail_password]').val(stmp_pwd_)
  9.                 $('input[name=sender_mail_server]').val(hosts_)
  10.                 $('input[name=sender_mail_port]').val(port_)
复制代码
修改
  1. var send = data.send;
  2.                
  3.                 var nickname_ = send.nickname || '',
  4.                     mail_ = send.qq_mail || '',
  5.                     stmp_pwd_ = send.qq_stmp_pwd || '',
  6.                     hosts_ = send.hosts || '',
  7.                     port_ = send.port || '';

  8.                 $('input[name=sender_mail_nickname]').val(nickname_)
  9.                 $('input[name=sender_mail_value]').val(mail_)
  10.                 $('input[name=sender_mail_password]').val(stmp_pwd_)
  11.                 $('input[name=sender_mail_server]').val(hosts_)
  12.                 $('input[name=sender_mail_port]').val(port_)
复制代码


使用道具 举报 只看该作者 回复
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

企业版年付运维跟进群

普通问题处理

论坛响应时间:72小时

问题处理方式:排队(仅解答)

工作时间:白班:9:00 - 18:00

紧急问题处理

论坛响应时间:10分钟

问题处理方式:1对1处理(优先)

工作时间:白班:9:00 - 18:00

工作时间:晚班:18:00 - 24:00

立即付费处理

工作时间:09:00至24:00

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