python使用tkinter写的邮件群发软件-python图形界面编程.docx

上传人:暗伤 文档编号:79798253 上传时间:2023-03-21 格式:DOCX 页数:4 大小:10.77KB
返回 下载 相关 举报
python使用tkinter写的邮件群发软件-python图形界面编程.docx_第1页
第1页 / 共4页
python使用tkinter写的邮件群发软件-python图形界面编程.docx_第2页
第2页 / 共4页
点击查看更多>>
资源描述

《python使用tkinter写的邮件群发软件-python图形界面编程.docx》由会员分享,可在线阅读,更多相关《python使用tkinter写的邮件群发软件-python图形界面编程.docx(4页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、学习 python 不久,学软件编程,最有兴趣的就是图形界面编程了。用生涩的代码,写下了这个简陋的邮件群发程序。Tkinter 这个 GUI 模块,windows 下安装了 python 环境的默认已经安装了这个模块,不用另外下载安装见笑了#-*- coding:utf-8 -*- #file:smtp.pyimport Tkinter#GUI 图形界面模块import smtplib#邮件 smtplib 模块from email.mime.text import MIMEText# 邮 件 MIMEText from ConfigParser import ConfigParser# 配

2、置 文 件 模 块 import osimport tkFileDialog import reclass Window:def init (self, root): #Label 标签Host = Tkinter.Label(root, text = 服务器)Port = Tkinter.Label(root, text = 端口) User = Tkinter.Label(root, text = 用户名) Passwd = Tkinter.Label(root, text = 密码) Subject = Tkinter.Label(root, text = 主题)To = Tkinter

3、.Label(root, text = 收 件人)MailFile = Tkinter.Button(root, text = 浏览 , command = self.MailFile)MailFile 函数#定义 Label 的位置Host.place(x = 5, y = 5)Port.place(x = 200, y = 5)User.place(x = 5, y = 30)Passwd.place(x = 200, y = 30)Subject.place(x = 5, y = 55)To.place(x = 5, y = 83) #定义浏览按钮的位置MailFile.place(x

4、= 345, y = 80) #Entry 文本框self.entryHost = Tkinter.Entry(root) self.entryUser = Tkinter.Entry(root) self.entryPasswd = Tkinter.Entry(root, show = *) self.entryTo = Tkinter.Entry(root, width = 40) self.entryPort = Tkinter.Entry(root)self.entrySub = Tkinter.Entry(root, width = 40) #读取配置文件config = Confi

5、gParser() config.read(smtp.conf)# 调用Host = config.get(setting, Host) Port = config.get(setting, Port) User = config.get(setting, User)Passwd = config.get(setting, Passwd) #将配置文件里的值放入文本框self.entryHost.insert(Tkinter.END, Host) self.entryPort.insert(Tkinter.END, Port) self.entryUser.insert(Tkinter.END

6、, User) self.entryPasswd.insert(Tkinter.END, Passwd) #文本框的位置self.entryHost.place(x = 50, y = 5)self.entryPort.place(x = 235, y = 5)self.entryUser.place(x = 50, y = 30)self.entryPasswd.place(x = 235, y = 30)self.entryTo.place(x = 50, y = 83)self.entrySub.place(x = 50, y = 55) #发送按钮,调用 MailSend 函数self

7、.mailSend = Tkinter.Button(root, text = 开始发送 , width= 20 , command =self.MailSend)#调用 SaveConfig 函数保存配置self.save = Tkinter.Button(root, text = 保存配置, command = self.SaveConfig) #调用 Help 函数打开帮助self.help = Tkinter.Button(root, text = 使用帮助, command = self.Help) self.mailSend.place(x = 430, y = 20)self.s

8、ave.place(x = 430, y = 60)self.help.place(x = 520, y = 60)#多行文本框,用来输入邮件内容self.text = Tkinter.Text(root) self.text.place(y = 120)def MailFile(self):#该函数用来读取放有邮件地址的文本文件r = tkFileDialog.askopenfilename(title = 打开文件, filetypes = (txt,*.txt) if r:self.entryTo.delete(0, Tkinter.END) self.entryTo.insert(Tk

9、inter.END, r)#MailSend 用于发送邮件def MailSend(self):#使用 get()获取各文本框中的内容host = self.entryHost.get()port = self.entryPort.get() user = self.entryUser.get() pw = self.entryPasswd.get() fromaddr = usersubject = self.entrySub.get()text = self.text.get(1.0, Tkinter.END) #读取文件mailfile = open(self.entryTo.get()

10、, r) mailaddr = mailfile.read()#使用正则表达式分割字符串,这里用逗号分割mail = re.split(, mailaddr)#设置邮件内容为 utf-8 编码msg = MIMEText(text, _charset=utf-8) msgFrom = fromaddr#收件人msgSubject = subject #主题smtp = smtplib.SMTP() smtp.connect(host,port)#连接 smtp 服务器smtp.login(user, pw)#登陆 smtp 服务器#使用循环读取分割出来的邮件地址,同时实现邮件群发for toa

11、ddr in mail:msgTo = toaddr#收件地址smtp.sendmail(fromaddr, toaddr, msg.as_string() #进行发送邮件smtp.close()#保存配置def SaveConfig(self):#获取文本框内容Host = self.entryHost.get() Port = self.entryPort.get() User = self.entryUser.get()Passwd = self.entryPasswd.get()#对需要保存的配置写入文件 smtp.conf 进行保存config = ConfigParser() co

12、nfig.add_section(setting)config.set(setting, Host, Host) config.set(setting, Port, Port) config.set(setting, User, User) config.set(setting, Passwd, Passwd) config.write(open(smtp.conf, w)#使用帮助def Help(self):help_str = 帮助:1.服务器是 SMTP 服务器,QQ 的为 ,126 邮箱为 2.用户名必须带后缀,例:,3.收件人使用 txt 文件,邮件地址之间用,分隔self.tex

13、t.insert(Tkinter.END, help_str) #检测配置文件是否存在,不存在则创建if(not os.path.isfile(smtp.conf):config = ConfigParser() config.add_section(setting) config.set(setting, Host, )config.set(setting, Port, 25)config.set(setting, User, 123456)config.set(setting, Passwd, 123456) config.write(open(smtp.conf, w)root = Tkinter.Tk()root.title(发你妹邮件群发)#标题root.geometry(650x500) window = Window(root) root.mainloop()#窗口大小

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 技术方案

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁