Python达成SMTP发送邮件GUI编程
发布时间:2021-11-15 11:26:09 所属栏目:PHP教程 来源:互联网
导读:写的是Python中smtp的gui编程,用的163邮箱给qq邮箱发送邮件做测试,如果你发现你的发送失败,试着用以下方法解决: 1.网页登陆你的邮箱,设置中查看smtp是否开启,比如163邮箱的smtp是否开启 2.你输入的密码是不是163设置的远程客户端的授权密码,请用远程
写的是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='请输入你的邮箱www.linuxidc.com',).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='请输入邮箱密码www.linuxidc.com',).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() ![]() (编辑:应用网_丽江站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |