过年拜年祝福短信大家都发了么?有没有烦恼说群发消息要每条改对方称呼好麻烦?
我这样的懒人当然也懒得每个手动修改,所以弄了个带UI界面的自动改名字群发祝福消息的python代码。
🔧核心功能
左侧通讯录列表:
- ✅ 导入通讯录CSV,显示所有联系人,前面带勾选框
右侧消息编辑区:
称呼使用格式
在消息正文中使用 {称呼} 作为占位符,发送时会自动替换:
{称呼},您好!新春佳节即将到来,在此向您致以最诚挚的祝福!
智能称呼提取
extract_salutation() 函数会自动:
示例:
"张总-华为-13812345678""娜姐""小芳(同事)""郑老师 北京大学"
发送效果:
UI界面如上
经过几轮调试测试,效果还是不错的,拜年短信已经发完啦~
功能调整说明
✅ 新增功能
1. 停止发送优化
问题: 点停止后还会继续操作微信窗口
修复:
- 点击"停止发送"或按ESC → 只设置停止标志,不关闭窗口
- 点击"X"或"关闭"按钮 → 先停止发送,等待0.5秒,再关闭窗口
使用:
2. 撤销/恢复功能 ↶ ↷
工具栏新增:
功能:
可撤销的操作:
3. 仅选此标签 ☑
位置: 快速选择区,在"反选"和"只选有聊天记录"之间
功能:
- 勾选后:只选择当前标签的联系人,其他标签全部取消选择
使用场景:
有500个联系人:
- 100个"企业"
- 200个"同学"
- 200个"朋友"
操作:
1. 标签筛选:企业
2. 勾选 ☑ 仅选此标签
→ 只选中这100个企业联系人
→ 其他400人全部取消选择
3. 群发 → 只给企业发
与"只选有聊天记录"组合:
1. 标签筛选:企业
2. 勾选 ☑ 仅选此标签(100人)
3. 勾选 ☑ 只选有聊天记录(60人)
→ 最终只选中60个有聊天记录的企业联系人
4. 重新生成称呼对话框
之前: 直接重新生成全部
现在: 弹出对话框,可选择范围
选项:
- 全部联系人
- 当前标签的联系人
- 当前选中的联系人
使用场景:
场景1:只重新生成企业联系人的称呼
1. 标签筛选:企业
2. 点击"重新生成称呼"
3. 选择"当前标签的联系人"
4. 确定 → 只重新生成企业的称呼
场景2:只重新生成选中的几个人
1. 手动选中10个联系人
2. 点击"重新生成称呼"
3. 选择"当前选中的联系人"
4. 确定 → 只重新生成这10个人的称呼
🔧 待完善的功能
5. 表头全选/取消全选(未完成)
计划: 点击表头的"☑"列 → 全选/取消全选当前筛选结果
实现建议:需要绑定表头点击事件,暂时可以用"全选"和"取消全选"按钮代替。
📝 使用建议
工作流程
1. 导入CSV
↓
2. 筛选标签(比如"企业")
↓
3. 勾选"仅选此标签" ← 新功能
↓
4. 应用称呼规则(姓+总)
(自动保存到撤销栈)
↓
5. 如果不满意:
点击"↶ 撤销" ← 新功能
重新修改
↓
6. 勾选"只选有聊天记录"
↓
7. 开始群发
↓
8. 如需停止:按ESC ← 已优化
🐛 已修复的问题
💡 提示
撤销功能
关于通讯录的导出,我用的是微信通讯录好友导出与备份助手,但是体验版只能提取100个,经过分析发现是用C#编译的,用Die检测是.NET Reactor外壳加密,所以我用de4dot脱壳生成-cleaned.exe后,用dnSpy查找数值 100,找到对应的内存地址后,把它锁死在9999。当然
,这过程还包括方法编辑无法编译,最后是用IL 编辑模式把ldc.i4.s 100,改成了是 ldc.i49999(因为ldc.i4.s最大支持不了255以上)鉴于通讯录导出本身是收费的,我就不放破解包了,大家自行获取吧。而且由于TX在GitHub搞了波大的,后面像对鹅家的东西修修改改越来越难了,且行且珍惜吧。自动群发祝福的代码可以私聊我获取,毕竟已经过完年了,用的人应该不多了,我就不放在自动回复里了。鉴于上面的原因,有需要单聊吧~