赞
踩
01
Python制作短信发送程序
在上个推文中,梅朵给大家介绍了Python发送短信的实现方法。
今天,梅朵继续给大家演示:Python制作短信发送程序的编程实现。
。
Python短信发送界面
实现方法
1.准备:注册腾讯云账号并配置短信功能
(1)注册腾讯云账号
登录腾讯云网址https://cloud.tencent.com/注册。
(2)获取AppID、AppKey
在短信功能页面下,从应用管理>应用列表,获取ID、Key。
(3)创建签名
在短信功能页面下,进入国内短信>签名管理,创建签名。
(4)创建正文模板
在短信功能页面下,进入国内短信>正文模板管理,创建模版。并获取模板ID备用。
2.初始化:初始化短信发送程序窗口
(1)初始化窗口菜单
菜单具备打开手机号码文件、保存记录、查看版本等功能。
`menu=tkinter.Menu(root)` `submenu1 = tkinter.Menu(menu, tearoff=0)` `submenu1.add_command(label='打开', command=open_file)` `submenu1.add_command(label='保存', command=save_file)` `menu.add_cascade(label='文件',menu=submenu1)` `submenu3 = tkinter.Menu(menu, tearoff=0)`` submenu3.add_command(label='版本信息', command=Introduction)` `menu.add_cascade(label='帮助',menu=submenu3)` `root.config(menu=menu)`
(2)初始化窗口控件
控件包括号码输入框、发送信息按钮,记录显示框。
`global text1,text2` `label1 = tkinter.Label(root, text="手机号码:", font=("微软雅黑", 18))` `label1.place(x=30,y=32)` `text1 = tkinter.Text(root, wrap = 'none', font=("微软雅黑", 18))` `text1.place(x=30+120,y=30, width=520-120-100, height=40)` `button=tkinter.Button(root, text='发送信息',width=10, height=20, bg='gray', fg='white', font=("微软雅黑", 12),command=send_Button)` `button.place(x=480,y=30,width=70, height=40)` `sx = tkinter.Scrollbar(root,orient = tkinter.HORIZONTAL)` `sx.pack(side = tkinter.BOTTOM,fill = tkinter.X)` `sy = tkinter.Scrollbar(root)` `sy.pack(side = tkinter.RIGHT,fill = tkinter.Y)`` text2 = tkinter.Text(root, yscrollcommand = sy.set, xscrollcommand = sx.set, wrap = 'none', font=("微软雅黑", 10))` `text2.place(x=30,y=100, width=520, height=400)` `text2.config(wrap=tkinter.WORD)` `text2.see(tkinter.END);` `sx.config(command = text2.xview)`` sy.config(command = text2.yview)`
3.编写事件触发程序
(1)文件打开
def open_file():` `global file_path,phone_numbers,flag` `file_path = filedialog.askopenfilename()` `if file_path is not "":` `data=pandas.read_excel(file_path)` `phone = data['号码'].tolist()` `for i in range(len(phone)):` `phone_numbers.append(str(phone[i]))` `text2.insert(tkinter.END,"*********************************"+"\n", '\n')` `text2.see(tkinter.END);` `text2.insert(tkinter.END,"打开文件成功!"+"\n", '\n')` `text2.see(tkinter.END);` `text2.insert(tkinter.END,"文件路径为:"+file_path+"\n", '\n')` `text2.see(tkinter.END);` `text2.insert(tkinter.END,"文件内容如下:"+"\n", '\n')` `text2.see(tkinter.END);` `text2.insert(tkinter.END,data, '\n')` `text2.see(tkinter.END);` `text2.insert(tkinter.END,"\n", '\n')` `text2.see(tkinter.END);` `flag = 1` `else:` `text2.insert(tkinter.END,"*********************************"+"\n", '\n')` `text2.see(tkinter.END);` `text2.insert(tkinter.END,"您未打开文件!"+"\n", '\n')` `text2.see(tkinter.END);` `flag = 0
(2)文件保存
def save_file():` `file=open("recorde.txt","a+")` `content=str(text2.get("0.0", "end"))` `file.write(content)` `file.close()` `text2.insert(tkinter.END,"*********************************"+"\n", '\n')` `text2.see(tkinter.END);` `text2.insert(tkinter.END,"保存记录到recorde.txt成功!"+"\n", '\n')` `text2.see(tkinter.END);` `tkinter.messagebox.showinfo('提示','保存记录到recorde.txt成功!')` `text2.see(tkinter.END);
(3)帮助菜单
def Introduction():` `text2.insert(tkinter.END,"*********************************"+"\n", '\n')` `text2.see(tkinter.END);` `text2.insert(tkinter.END,"版本信息:短信息通知程序 V1.0"+"\n", '\n')` `text2.see(tkinter.END);` `tkinter.messagebox.showinfo('版本信息' ,'短信息通知程序 V1.0')` `text2.see(tkinter.END);
(4)发送按钮
def send_Button():` `global flag,phone_numbers` `appid = "你的appid"` `appkey = "你的appkey"` `template_id = "你的模板ID"` `sms_sign = "你的公众号名称"` `params = []` `ssl._create_default_https_context = ssl._create_unverified_context`` ssender = SmsSingleSender(appid, appkey) `` txt1 = str(text1.get("0.0", "end")).replace('\n', '')` `if flag==0:` `if ',' in txt1:` `phone_numbers=str(text1.get("0.0", "end")).replace('\n', '').split(',')` `elif ',' in txt1:` `phone_numbers=str(text1.get("0.0", "end")).replace('\n', '').split(',')` `else:` `phone_numbers=[]` `phone_numbers.append(txt1)` `else:` `flag = 0` `count=0` `for l in phone_numbers:` `count=count+len(str(l))` `if count%11==0:` `result = ""` `for i in range(len(phone_numbers)):` `try:` `result = ssender.send_with_param(86, phone_numbers[i],template_id, params, sign=sms_sign, extend="", ext="")`` except HTTPError as e: `` result=e` `except Exception as e:`` result=e` `text2.insert(tkinter.END,"*********************************"+"\n", '\n')` `text2.see(tkinter.END);` `text2.insert(tkinter.END,"信息发送至手机号:"+"\n"+str(phone_numbers[i])+"\n")` `text2.see(tkinter.END);` `text2.insert(tkinter.END,"信息发送返回结果:"+"\n")` `text2.see(tkinter.END);` `text2.insert(tkinter.END,str(result)+"\n", '\n')` `text2.see(tkinter.END);` `if result['errmsg']=='OK':` `text2.insert(tkinter.END,"信息发送至【"+str(phone_numbers[i])+"】成功!"+"\n")` `text2.see(tkinter.END);` `else:` `text2.insert(tkinter.END,"信息发送至【"+str(phone_numbers[i])+"】失败!"+"\n")` `text2.see(tkinter.END);` `else:` `text2.insert(tkinter.END,"*********************************"+"\n", '\n')` `text2.see(tkinter.END);` `text2.insert(tkinter.END,"手机号码格式不正确"+"\n", '\n')` `text2.see(tkinter.END);
完整源代码
import tkinter``import tkinter.messagebox``from tkinter import filedialog``import pandas``import ssl``from qcloudsms_py import SmsSingleSender` `from qcloudsms_py.httpclient import HTTPError` ` ``def open_file():` `global file_path,phone_numbers,flag` `file_path = filedialog.askopenfilename()` `if file_path is not "":` `data=pandas.read_excel(file_path)` `phone = data['号码'].tolist()` `for i in range(len(phone)):` `phone_numbers.append(str(phone[i]))` `text2.insert(tkinter.END,"*********************************"+"\n", '\n')` `text2.see(tkinter.END);` `text2.insert(tkinter.END,"打开文件成功!"+"\n", '\n')` `text2.see(tkinter.END);` `text2.insert(tkinter.END,"文件路径为:"+file_path+"\n", '\n')` `text2.see(tkinter.END);` `text2.insert(tkinter.END,"文件内容如下:"+"\n", '\n')` `text2.see(tkinter.END);` `text2.insert(tkinter.END,data, '\n')` `text2.see(tkinter.END);` `text2.insert(tkinter.END,"\n", '\n')` `text2.see(tkinter.END);` `flag = 1` `else:` `text2.insert(tkinter.END,"*********************************"+"\n", '\n')` `text2.see(tkinter.END);` `text2.insert(tkinter.END,"您未打开文件!"+"\n", '\n')` `text2.see(tkinter.END);` `flag = 0` `def save_file():` `file=open("recorde.txt","a+")` `content=str(text2.get("0.0", "end"))` `file.write(content)` `file.close()` `text2.insert(tkinter.END,"*********************************"+"\n", '\n')` `text2.see(tkinter.END);` `text2.insert(tkinter.END,"保存记录到recorde.txt成功!"+"\n", '\n')` `text2.see(tkinter.END);` `tkinter.messagebox.showinfo('提示','保存记录到recorde.txt成功!')` `text2.see(tkinter.END);` `def Introduction():` `text2.insert(tkinter.END,"*********************************"+"\n", '\n')` `text2.see(tkinter.END);` `text2.insert(tkinter.END,"版本信息:短信息通知程序 V1.0"+"\n", '\n')` `text2.see(tkinter.END);` `tkinter.messagebox.showinfo('版本信息' ,'短信息通知程序 V1.0')` `text2.see(tkinter.END);` ` ``def send_Button():` `global flag,phone_numbers` `appid = "你的appid"` `appkey = "你的appkey"` `template_id = "你的模板ID"` `sms_sign = "你的公众号名称"` `params = []` `ssl._create_default_https_context = ssl._create_unverified_context`` ssender = SmsSingleSender(appid, appkey) `` txt1 = str(text1.get("0.0", "end")).replace('\n', '')` `if flag==0:` `if ',' in txt1:` `phone_numbers=str(text1.get("0.0", "end")).replace('\n', '').split(',')` `elif ',' in txt1:` `phone_numbers=str(text1.get("0.0", "end")).replace('\n', '').split(',')` `else:` `phone_numbers=[]` `phone_numbers.append(txt1)` `else:` `flag = 0` `count=0` `for l in phone_numbers:` `count=count+len(str(l))` `if count%11==0:` `result = ""` `for i in range(len(phone_numbers)):` `try:` `result = ssender.send_with_param(86, phone_numbers[i],template_id, params, sign=sms_sign, extend="", ext="")`` except HTTPError as e: `` result=e` `except Exception as e:`` result=e` `text2.insert(tkinter.END,"*********************************"+"\n", '\n')` `text2.see(tkinter.END);` `text2.insert(tkinter.END,"信息发送至手机号:"+"\n"+str(phone_numbers[i])+"\n")` `text2.see(tkinter.END);` `text2.insert(tkinter.END,"信息发送返回结果:"+"\n")` `text2.see(tkinter.END);` `text2.insert(tkinter.END,str(result)+"\n", '\n')` `text2.see(tkinter.END);` `if result['errmsg']=='OK':` `text2.insert(tkinter.END,"信息发送至【"+str(phone_numbers[i])+"】成功!"+"\n")` `text2.see(tkinter.END);` `else:` `text2.insert(tkinter.END,"信息发送至【"+str(phone_numbers[i])+"】失败!"+"\n")` `text2.see(tkinter.END);` `else:` `text2.insert(tkinter.END,"*********************************"+"\n", '\n')` `text2.see(tkinter.END);` `text2.insert(tkinter.END,"手机号码格式不正确"+"\n", '\n')` `text2.see(tkinter.END);`` `` ` `def init_frame(root): `` menu=tkinter.Menu(root)` `submenu1 = tkinter.Menu(menu, tearoff=0)` `submenu1.add_command(label='打开', command=open_file)` `submenu1.add_command(label='保存', command=save_file)` `menu.add_cascade(label='文件',menu=submenu1)` `submenu3 = tkinter.Menu(menu, tearoff=0)`` submenu3.add_command(label='版本信息', command=Introduction)` `menu.add_cascade(label='帮助',menu=submenu3)` `root.config(menu=menu)` `global text1,text2` `label1 = tkinter.Label(root, text="手机号码:", font=("微软雅黑", 18))` `label1.place(x=30,y=32)` `text1 = tkinter.Text(root, wrap = 'none', font=("微软雅黑", 18))` `text1.place(x=30+120,y=30, width=520-120-100, height=40)` `button=tkinter.Button(root, text='发送信息',width=10, height=20, bg='gray', fg='white', font=("微软雅黑", 12),command=send_Button)` `button.place(x=480,y=30,width=70, height=40)` `sx = tkinter.Scrollbar(root,orient = tkinter.HORIZONTAL)` `sx.pack(side = tkinter.BOTTOM,fill = tkinter.X)` `sy = tkinter.Scrollbar(root)` `sy.pack(side = tkinter.RIGHT,fill = tkinter.Y)`` text2 = tkinter.Text(root, yscrollcommand = sy.set, xscrollcommand = sx.set, wrap = 'none', font=("微软雅黑", 10))` `text2.place(x=30,y=100, width=520, height=400)` `text2.config(wrap=tkinter.WORD)` `text2.see(tkinter.END);` `sx.config(command = text2.xview)`` sy.config(command = text2.yview)` `root.update()`` ``if __name__=="__main__":` `global flag` `flag = 0` `global phone_numbers` `phone_numbers = []` `root = tkinter.Tk()` `root.title("短信息发送程序")` `root.geometry('600x520')` `init_frame(root)` `root.mainloop()
公众号:实用办公编程技能
微信号:Excel-Python
欢迎留言!
扫码关注,更多精彩
公众号:实用办公编程技能
4_.__Python制作二维码生成器_
6_._用Python玩转视频播放__
点击下方安全链接前往获取
CSDN大礼包:《Python入门&进阶学习资源包》免费分享
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。