因最近在改造升级 旧版本的 安全社区报警工具,需要使用邮件发送报警信息,故逐行参考了官方部分插件中的代码
由于宝塔的专业版插件 异常监控推送 中拥有使用宝塔接口发送邮件的功能,故尝试创建了多个监控任务,来探寻官方发送邮件时的api 参数
但是发现一个奇怪的现象 ,在一台 使用 python2.7 做为默认环境的宝塔面板中,异常监控成功发送了邮件
但在另外一台 python 3.8 环境的面板中,邮件发送失败、
经过断点调试 ,发现问题 出现在 python 3.x 世代的 json.dumps 和 base64.b64encode 这两个方法上
在python 2.x 世代中 , json.dumps 和 base64.b64encode 均返回数据类型为 str
但在 python3.x 世代 中
json.dumps 返回 str , base64.b64encode 的入参类型 为 byte , 故会引发第一处错误
base64.b64encode 的出参类型为 byte , 引发第二处错误
故综上 , 异常推送插件的 msg_push_main.py 的 第 749 行
应该修正为 下图
愿宝塔越做越好(PS:调试不易,炮哥不要忘记我的宝塔币 哈哈哈)
|
|