码迷,mamicode.com
首页 > 编程语言 > 详细

python邮件SMTP的GUI编程

时间:2017-10-07 16:10:35      阅读:344      评论:0      收藏:0      [点我收藏+]

标签:logs   set   bug   接收   远程登录   查看   str   mime   帮助   

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

技术分享

 

  1 #*-* coding:utf-8 *-*
  2 import Tkinter as tk
  3 from email import encoders
  4 from email.header import Header
  5 from email.mime.text import MIMEText
  6 from email.utils import parseaddr, formataddr
  7 import smtplib
  8 
  9  
 10 
 11 root = tk.Tk()
 12 root.geometry(500x400)
 13 root.title(SMTP发送)
 14 
 15 #输入发送者邮箱
 16 fram = tk.Frame(root)
 17 frameL = tk.Frame(fram)
 18 tk.Label(frameL,text=请输入你的邮箱,).pack()
 19 frameL.pack(side = left)
 20 
 21 frameR = tk.Frame(fram)
 22 sender = tk.StringVar()
 23 msgsend = tk.Entry(frameR,textvariable = sender,).pack()
 24 sender.set(example@163.com)
 25 frameR.pack(side = right)
 26 fram.pack()
 27 
 28 
 29 #输入邮箱密码
 30 fram = tk.Frame(root)
 31 frameL = tk.Frame(fram)
 32 tk.Label(frameL,text=请输入邮箱密码,).pack()
 33 frameL.pack(side = left)
 34 
 35 frameR = tk.Frame(fram)
 36 passwo = tk.StringVar()
 37 msgpass = tk.Entry(frameR,textvariable = passwo,).pack()
 38 passwo.set(*****)
 39 frameR.pack(side = right)
 40 fram.pack()
 41 
 42 
 43 #输入接收者者邮箱
 44 fram = tk.Frame(root)
 45 frameL = tk.Frame(fram)
 46 tk.Label(frameL,text=请输入对方的邮箱,).pack(side = left)
 47 frameL.pack(side = left)
 48 
 49 frameR = tk.Frame(fram)
 50 receive = tk.StringVar()
 51 msgreveive = tk.Entry(frameR,textvariable = receive,).pack()
 52 receive.set(example@qq.com)
 53 frameR.pack(side = left)
 54 fram.pack()
 55 
 56 
 57 #输入邮件内容
 58 tk.Label(root,text=请输入邮件内容,).pack(side = left)
 59 msgrecv = tk.Text(root)
 60 msgrecv.pack()
 61 
 62 
 63 #格式化数据
 64 def _format_addr(s):
 65 name, addr = parseaddr(s)
 66 return formataddr((  67 Header(name, utf-8).encode(),  68 addr.encode(utf-8) if isinstance(addr, unicode) else addr))
 69 
 70 
 71 def sendEmail():
 72 #取出发送者邮箱,登录密码,接收者邮箱
 73 global sender
 74 send = sender.get()
 75 global passwo
 76 passwd = passwo.get()
 77 global receive
 78 receive = receive.get().encode()
 79 
 80 #赋值发邮件所需要的信息
 81 from_addr = send
 82 password = passwd
 83 to_addr = receive
 84 smtp_server = smtp.163.com #163邮箱服务器
 85 msg2 = msgrecv.get(0.0, end)
 86 
 87 
 88 msg = MIMEText(msg2, plain, utf-8) #信息内容
 89 msg[From] = _format_addr(uPython爱好者 <%s> % from_addr) #发件人
 90 msg[To] = _format_addr(u%s % to_addr) #收件人
 91 msg[Subject] = Header(u来自SMTP的问候……, utf-8).encode() #邮件标题
 92 server = smtplib.SMTP(smtp_server, 25)
 93 server.set_debuglevel(1)
 94 server.login(from_addr, password)
 95 server.sendmail(from_addr, [to_addr], msg.as_string())
 96 server.quit()
 97 msgrecv.insert(end, u\n发送成功!)
 98 
 99 #删除输入的邮件信息
100 def reset():
101 msgrecv.delete(1.0,end)
102 
103 
104 framButton = tk.Frame(root)
105 send=tk.Button(framButton, text=发送, command=sendEmail, bg = green).pack(side = left)
106 reset=tk.Button(framButton, text=取消, command=reset).pack(side = left)
107 quit=tk.Button(framButton, text=退出, command=root.quit, bg = red).pack(side = right)
108 framButton.pack()
109 
110 root.mainloop()

 

python邮件SMTP的GUI编程

标签:logs   set   bug   接收   远程登录   查看   str   mime   帮助   

原文地址:http://www.cnblogs.com/lq1024/p/7634554.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!