当前位置:首页>python>python自动群发祝福消息

python自动群发祝福消息

  • 2026-09-27 03:55:49
python自动群发祝福消息

过年拜年祝福短信大家都发了么?有没有烦恼说群发消息要每条改对方称呼好麻烦?

我这样的懒人当然也懒得每个手动修改,所以弄了个带UI界面的自动改名字群发祝福消息的python代码。

🔧核心功能

左侧通讯录列表:

  • ✅ 导入通讯录CSV,显示所有联系人,前面带勾选框
  • ✅ 可以一键选中有聊天记录的联系人
  • ✅ 显示微信名和备注名
  • ✅ 智能判断称呼(优先使用备注名)
  • ✅ 搜索功能
  • ✅ 快捷操作:全选、选择有聊天记录、取消全选

右侧消息编辑区:

  • 📝 祝福正文编辑器
  • 📋 称呼使用说明卡片
  • 👁️ 发送预览示例
  • ✉️ 群发按钮(显示已选人数)

称呼使用格式

在消息正文中使用 {称呼} 作为占位符,发送时会自动替换:

{称呼},您好!新春佳节即将到来,在此向您致以最诚挚的祝福!

智能称呼提取

extract_salutation() 函数会自动:

  • ✅ 去除11位手机号
  • ✅ 去除固定电话
  • ✅ 去除单位信息(破折号后的公司、集团、大学等)
  • ✅ 去除括号内的关系说明,如(同事)、(表妹)
  • ✅ 去除多余的符号和空格

示例:

  • "张总-华为-13812345678"
     → "张总"
  • "娜姐"
     → "娜姐"
  • "小芳(同事)"
     → "小芳"
  • "郑老师 北京大学"
     → "郑老师"

发送效果:

    张总,您好!娜姐,您好!小芳,您好!

    UI界面如上

    经过几轮调试测试,效果还是不错的,拜年短信已经发完啦~

    功能调整说明

    ✅ 新增功能

    1. 停止发送优化

    问题: 点停止后还会继续操作微信窗口

    修复:

    • 点击"停止发送"或按ESC → 只设置停止标志,不关闭窗口
    • 点击"X"或"关闭"按钮 → 先停止发送,等待0.5秒,再关闭窗口
    • 保活线程会在0.1秒内检测到停止并退出

    使用:

    • 按ESC键 → 停止发送
    • 点"停止发送"按钮 → 停止发送
    • 点"X"或"关闭" → 先停止再关闭

    2. 撤销/恢复功能 ↶ ↷

    工具栏新增:

    • ↶ 撤销
       按钮(黄色)
    • ↷ 恢复
       按钮(黄色)

    功能:

    • 撤销最近20次操作
    • 恢复撤销的操作
    • 自动保存操作历史

    可撤销的操作:

    • 编辑称呼
    • 应用称呼规则
    • 仅选此标签


    3. 仅选此标签 ☑

    位置: 快速选择区,在"反选"和"只选有聊天记录"之间

    功能:

    • 勾选后:只选择当前标签的联系人,其他标签全部取消选择
    • 取消勾选:恢复全选

    使用场景:

    有500个联系人:
    - 100个"企业"
    - 200个"同学"
    - 200个"朋友"

    操作:
    1. 标签筛选:企业
    2. 勾选 ☑ 仅选此标签
       → 只选中这100个企业联系人
       → 其他400人全部取消选择
    3. 群发 → 只给企业发

    与"只选有聊天记录"组合:

    1. 标签筛选:企业
    2. 勾选 ☑ 仅选此标签(100人)
    3. 勾选 ☑ 只选有聊天记录(60人)
       → 最终只选中60个有聊天记录的企业联系人


    4. 重新生成称呼对话框

    之前: 直接重新生成全部

    现在: 弹出对话框,可选择范围

    选项:

    1. 全部联系人
       - 重新生成所有人的称呼
    2. 当前标签的联系人
       - 只重新生成当前筛选标签的称呼
    3. 当前选中的联系人
       - 只重新生成选中的联系人称呼

    使用场景:

    场景1:只重新生成企业联系人的称呼
    1. 标签筛选:企业
    2. 点击"重新生成称呼"
    3. 选择"当前标签的联系人"
    4. 确定 → 只重新生成企业的称呼

    场景2:只重新生成选中的几个人
    1. 手动选中10个联系人
    2. 点击"重新生成称呼"
    3. 选择"当前选中的联系人"
    4. 确定 → 只重新生成这10个人的称呼


    🔧 待完善的功能

    5. 表头全选/取消全选(未完成)

    计划: 点击表头的"☑"列 → 全选/取消全选当前筛选结果

    实现建议:需要绑定表头点击事件,暂时可以用"全选"和"取消全选"按钮代替。


    📝 使用建议

    工作流程

    1. 导入CSV
       ↓
    2. 筛选标签(比如"企业")
       ↓
    3. 勾选"仅选此标签" ← 新功能
       ↓
    4. 应用称呼规则(姓+总)
       (自动保存到撤销栈)
       ↓
    5. 如果不满意:
       点击"↶ 撤销" ← 新功能
       重新修改
       ↓
    6. 勾选"只选有聊天记录"
       ↓
    7. 开始群发
       ↓
    8. 如需停止:按ESC ← 已优化


    🐛 已修复的问题

    1. ✅ 停止后还会继续操作微信窗口
    2. ✅ 激活微信失败的错误刷屏
    3. ✅ 停止响应慢

    💡 提示

    撤销功能

    • 最多保存20次操作
    • 超过20次,最早的会被删除
    • 撤销后再进行新操作,恢复栈会清空

    关于通讯录的导出,我用的是微信通讯录好友导出与备份助手,但是体验版只能提取100个,经过分析发现是用C#编译的,用Die检测是.NET Reactor外壳加密,所以我用de4dot脱壳生成-cleaned.exe后,用dnSpy查找数值 100,找到对应的内存地址后,把它锁死在9999。当然,这过程还包括方法编辑无法编译,最后是用IL 编辑模式把ldc.i4.s 100,改成了是 ldc.i49999(因为ldc.i4.s最大支持不了255以上)
    鉴于通讯录导出本身是收费的,我就不放破解包了,大家自行获取吧。而且由于TX在GitHub搞了波大的,后面像对鹅家的东西修修改改越来越难了,且行且珍惜吧。
    就……很无语…行吧,爱咋咋地吧。
    自动群发祝福的代码可以私聊我获取,毕竟已经过完年了,用的人应该不多了,我就不放在自动回复里了。鉴于上面的原因,有需要单聊吧~

    最新文章

    随机文章