python邮件SMTP的GUI编程
写的是python中smtp的gui编程,用的163邮箱给qq邮箱发送邮件做测试,如果你发现你的发送失败,试着用以下方法解决:
1.网页登陆你的邮箱,设置中查看smtp是否开启,比如163邮箱的smtp是否开启
2.你输入的密码是不是163设置的远程客户端的授权密码,请用远程登录密码登陆测试
希望以上2点能帮助你测试成功·
效果图:

#*-* coding:utf-8 *-*
import Tkinter as tk
from email import encoders
from email.header import Header
from email.mime.text import MIMEText
from email.utils import parseaddr, formataddr
import smtplib
root = tk.Tk()
root.geometry('500x400')
root.title('SMTP发送')
#输入发送者邮箱
fram = tk.Frame(root)
frameL = tk.Frame(fram)
tk.Label(frameL,text='请输入你的邮箱',).pack()
frameL.pack(side = 'left')
frameR = tk.Frame(fram)
sender = tk.StringVar()
msgsend = tk.Entry(frameR,textvariable = sender,).pack()
sender.set('example@163.com')
frameR.pack(side = 'right')
fram.pack()
#输入邮箱密码
fram = tk.Frame(root)
frameL = tk.Frame(fram)
tk.Label(frameL,text='请输入邮箱密码',).pack()
frameL.pack(side = 'left')
frameR = tk.Frame(fram)
passwo = tk.StringVar()
msgpass = tk.Entry(frameR,textvariable = passwo,).pack()
passwo.set('*****')
frameR.pack(side = 'right')
fram.pack()
#输入接收者者邮箱
fram = tk.Frame(root)
frameL = tk.Frame(fram)
tk.Label(frameL,text='请输入对方的邮箱',).pack(side = 'left')
frameL.pack(side = 'left')
frameR = tk.Frame(fram)
receive = tk.StringVar()
msgreveive = tk.Entry(frameR,textvariable = receive,).pack()
receive.set('example@qq.com')
frameR.pack(side = 'left')
fram.pack()
#输入邮件内容
tk.Label(root,text='请输入邮件内容',).pack(side = 'left')
msgrecv = tk.Text(root)
msgrecv.pack()
#格式化数据
def _format_addr(s):
name, addr = parseaddr(s)
return formataddr(( \
Header(name, 'utf-8').encode(), \
addr.encode('utf-8') if isinstance(addr, unicode) else addr))
def sendEmail():
#取出发送者邮箱,登录密码,接收者邮箱
global sender
send = sender.get()
global passwo
passwd = passwo.get()
global receive
receive = receive.get().encode()
#赋值发邮件所需要的信息
from_addr = send
password = passwd
to_addr = receive
smtp_server = 'smtp.163.com' #163邮箱服务器
msg2 = msgrecv.get('0.0', 'end')
msg = MIMEText(msg2, 'plain', 'utf-8') #信息内容
msg['From'] = _format_addr(u'Python爱好者 <%s>' % from_addr) #发件人
msg['To'] = _format_addr(u'%s' % to_addr) #收件人
msg['Subject'] = Header(u'来自SMTP的问候……', 'utf-8').encode() #邮件标题
server = smtplib.SMTP(smtp_server, 25)
server.set_debuglevel(1)
server.login(from_addr, password)
server.sendmail(from_addr, [to_addr], msg.as_string())
server.quit()
msgrecv.insert('end', u'\n发送成功!')
#删除输入的邮件信息
def reset():
msgrecv.delete('1.0','end')
framButton = tk.Frame(root)
send=tk.Button(framButton, text='发送', command=sendEmail, bg = 'green').pack(side = 'left')
reset=tk.Button(framButton, text='取消', command=reset).pack(side = 'left')
quit=tk.Button(framButton, text='退出', command=root.quit, bg = 'red').pack(side = 'right')
framButton.pack()
root.mainloop()
python邮件SMTP的GUI编程的更多相关文章
- python大法好——ython GUI编程(Tkinter)
Python GUI编程(Tkinter) Python 提供了多个图形开发界面的库,几个常用 Python GUI 库如下: Tkinter: Tkinter 模块(Tk 接口)是 Python 的 ...
- Python GUI编程--Tkinter
今天看到了GUI编程,书上推荐用wxPython,去官网上看了看,发现Windows的最高支持到2.7,我用的是3.4版本,咋办,用自带的库--Tkinter呗,它是Python的默认GUI库,几乎是 ...
- 用 eric6 与 PyQt5 实现python的极速GUI编程(系列01)--Hello world!
[题记] 我是一个菜鸟,这个系列是我的学习笔记. PyQt5 出来有一段时间了, PyQt5 较之 PyQt4 有一些变化,而网上流传的几乎都是 PyQt4 的教程,照搬的话大多会出错. eric6 ...
- Python GUI编程各种实现的对比
Python GUI编程各种实现的对比 从 Python 语言的诞生之日起,就有许多优秀的 GUI 工具集整合到 Python 当中,这些优秀的 GUI 工具集,使得 Python 也可以在图形界面编 ...
- Python的GUI编程(TK)
TK在大多数 Unix平台.Windows平台和Macintosh系统都是预装好的,TKinter 模块是 Tk GUI 套件的标准Python接口.可实现Python的GUI编程. Tkinter模 ...
- Python gui编程pyQt5安装步骤t
Python gui编程pyQt5安装步骤 pip install PyQt5 Pip3 install PyQt5 https://riverbankco ...
- Python gui编程pyQt5安装步骤
Python gui编程pyQt5安装步骤 =============================== -m PyQt5.uic.pyuic $FileName$ -o $FileNameWit ...
- Python GUI 编程
Python GUI编程(Tkinter) Python 提供了多个图形开发界面的库,几个常用 Python GUI 库如下: Tkinter: Tkinter 模块(Tk 接口)是 Python 的 ...
- Python GUI编程(Tkinter) windows界面开发
Python实现GUI简单的来说可以调用Tkinter库,这样一般的需求都可以实现,显示简单的windows窗口代码如下: python_gui.py 1 #!C:\Python27\python.e ...
随机推荐
- TTL转MIPI DSI芯片方案TC358778XBG
型号:TC358778XBG功能:TTL转MIPI DSI通信方式:IIC分辨率:1920*1080电源:3.3/1.8/1.2封装形式:BGA80深圳长期现货 ,提供技术支持,样品申请及规格书请联系 ...
- 前端开发【第一篇:HTML】
HTML初识 1.什么是HTML HTML是英文Hyper Text Mark-up Language(超文本标记语言)的缩写,他是一种制作万维网页面标准语言(标记).相当于定义统一的一套规则,大家都 ...
- Spring框架Controller层(表现层)针对方法参数是Bean时HttpServletRequest绑定参数值问题解释
在做项目的时候,有一个需求是将数据库中的信息封装到实体类返回到jsp界面 传过来的参数只是实体类的id属性,然后根据id属性去查数据库,事情就是这样,然后 结果遇到很奇怪的事情,在jsp页面中使用EL ...
- java开发网易电话面试 一面总结
晚上八点多自己在看视频的时候突然接到杭州来的一个电话,当时觉得很奇怪,突兀,接通之后被告知是杭州网易打来的,没有简单的自我介绍,没有多余的废话,直接入主题,吓得我心里怪紧张的,完全没有准备,但是也没有 ...
- java对象 深度克隆(不实现Cloneable接口)和浅度克隆
详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt128 为什么需要克隆: 在实际编程过程中,我们常常要遇到这种情况:有一个对象 ...
- poj 1948二维01背包
题意:给出不多于40个小棍的长度,求出用所有小棍组成的三角形的最大面积. 思路:三角形3边求面积,海伦公式:p=(a+b+c)/2;S=p*(p-a)*(p-b)*(p-c);因为最大周长为1600 ...
- 从web图片裁剪出发:了解H5中的Blob
刚开始做前端的时候,有个功能卡住我了,就是裁剪并上传头像.当时两个方案摆在我面前,一个是flash,我不会.另一个是通过iframe上传图片,然后再上传坐标由后端裁剪,而我最终的选择是后者.有人会疑惑 ...
- 团队作业4——第一次项目冲刺(Alpha版本)2017.4.23
1.当天站立式会议照片 本次会议为第一次会议 本次会议在5号公寓1楼召开,本次会议内容: ①:做第一天的简单分工 ②:讨论每个人是否对安排的任务有苦难 ③:规定完成时间是在第二天之前 ④:遇到困难,及 ...
- 201521123019 《Java程序设计》第4周学习总结
1. 本章学习总结 2. 书面作业 Q1.注释的应用:使用类的注释与方法的注释为前面编写的类与方法进行注释,并在Eclipse中查看.(截图) Q2.面向对象设计(大作业1-非常重要) 2.1 讲故事 ...
- 201521123027 《JAVA程序设计》第一周学习总结
一.本周学习总结 经过第一周的JAVA学习,初步学习到下列重点知识: 1.JAVA SE的主要部分:JVM.JRE.JDK.与JAVA语言: 2.JAVA虚拟机实验跨平台运行JAVA程序: 3.JAV ...