写的是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编程的更多相关文章

  1. python大法好——ython GUI编程(Tkinter)

    Python GUI编程(Tkinter) Python 提供了多个图形开发界面的库,几个常用 Python GUI 库如下: Tkinter: Tkinter 模块(Tk 接口)是 Python 的 ...

  2. Python GUI编程--Tkinter

    今天看到了GUI编程,书上推荐用wxPython,去官网上看了看,发现Windows的最高支持到2.7,我用的是3.4版本,咋办,用自带的库--Tkinter呗,它是Python的默认GUI库,几乎是 ...

  3. 用 eric6 与 PyQt5 实现python的极速GUI编程(系列01)--Hello world!

    [题记] 我是一个菜鸟,这个系列是我的学习笔记. PyQt5 出来有一段时间了, PyQt5 较之 PyQt4 有一些变化,而网上流传的几乎都是 PyQt4 的教程,照搬的话大多会出错. eric6 ...

  4. Python GUI编程各种实现的对比

    Python GUI编程各种实现的对比 从 Python 语言的诞生之日起,就有许多优秀的 GUI 工具集整合到 Python 当中,这些优秀的 GUI 工具集,使得 Python 也可以在图形界面编 ...

  5. Python的GUI编程(TK)

    TK在大多数 Unix平台.Windows平台和Macintosh系统都是预装好的,TKinter 模块是 Tk GUI 套件的标准Python接口.可实现Python的GUI编程. Tkinter模 ...

  6. Python gui编程pyQt5安装步骤t

    Python gui编程pyQt5安装步骤         pip install PyQt5 Pip3 install PyQt5               https://riverbankco ...

  7. Python gui编程pyQt5安装步骤

    Python gui编程pyQt5安装步骤 =============================== -m PyQt5.uic.pyuic  $FileName$ -o $FileNameWit ...

  8. Python GUI 编程

    Python GUI编程(Tkinter) Python 提供了多个图形开发界面的库,几个常用 Python GUI 库如下: Tkinter: Tkinter 模块(Tk 接口)是 Python 的 ...

  9. Python GUI编程(Tkinter) windows界面开发

    Python实现GUI简单的来说可以调用Tkinter库,这样一般的需求都可以实现,显示简单的windows窗口代码如下: python_gui.py 1 #!C:\Python27\python.e ...

随机推荐

  1. httpd2.4常用配置

    author:JevonWei 版权声明:原创作品 httpd 2.4配置 切换使用的MPM Centos7:/etc/httpd/conf.modules.d/00-mpm.conf 启用要启用的M ...

  2. 通过ssh协议实现用户key认证登录

    author:JevonWei 版权声明:原创作品 用户实现key认证登录 主机A 192.168.198,134 主机B 192.168.198,131 主机C 192.168.198,136 创建 ...

  3. 1092: 最大价值(dollars) 算法 动态规划

    题目地址:http://www.hustoj.com/oj/problem.php?id=1092 题目描述 Dave以某种方法获取了未来几天美元对德国马克的兑换率.现在Dave只有100美元,请编程 ...

  4. java程序启动参数-D含义详解

    详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt407 java程序启动参数 -D是用来做什么的呢?去查询了一下官方解释: S ...

  5. 使用Docker搭建简易的 Java Web 环境

    ![group_5622_0](http://ow20g4tgj.bkt.clouddn.com/2017-09-10-group_5622_0.png) 从[<从最简单的入手学习 Docker ...

  6. poj2914无向图的最小割模板

    题意:给出无向图的点,边,权值.求最小割. 思路:根据题目规模,最大流算法会超时. 网上参考的模板代码. 代码: /*最小割集◎Stoer-Wagner算法:一个无向连通网络,去掉一个边集可以使其变成 ...

  7. shell下office、html、pdf文档互转方法

     分类: 后台开发 版权声明:本文为博主原创文章,未经博主允许不得转载.   OFFICE 文档在线预览方案很多: 服务器先转换为PDF,再转换为SWF,最后通过网页加载Flash预览,比如flexp ...

  8. 命令行利用KVM创建虚拟机

    一,实验环境 OS:CENTOS6.5 X86_64 二,KVM宿主环境配置 1.cat /proc/cpuinfo | egrep 'vmx|svm'  //查看是否支持虚拟技术 2.安装KVM相关 ...

  9. 团队作业3——需求改进&系统设计

    Deadline: 2017-4-21 22:00PM,以博客发表日期为准 评分基准: 按时交 - 有分,检查的项目包括后文的四个方面 需求&原型改进 系统设计 Alpha任务分配计划 测试计 ...

  10. 团队作业9——展示博客(Beta版本)

    展示博客 1.团队成员的简介和个人博客地址,团队的源码仓库地址. 何琴琴(http://www.cnblogs.com/vviane/): 领导项目进行,协调各队员之间的矛盾合作,负责测试与需求分析. ...