python2.7 TK界面邮件发送(支持中文)
来源:互联网 发布:中国最牛的程序员 编辑:程序博客网 时间:2024/06/06 20:05
在别人代码基础上改的,163邮箱测试能用。
#!/usr/bin/env python#coding=utf-8'''支持中文邮件的发送'''from smtplib import *from email.mime.text import MIMETextfrom Tkinter import *import tkMessageBoximport stringclass loginPage(object): def __init__(self, master, info='Mail Send System'): self.master = master self.mainlabel = Label(master, text=info, justify=CENTER) self.mainlabel.grid(row=0, columnspan=3) self.user = Label(master, text='username', borderwidth=2) self.user.grid(row=1, sticky=W) self.pwd = Label(master, text='password', borderwidth=2) self.pwd.grid(row=2, sticky=W) self.userEntry = Entry(master) self.userEntry.grid(row=1, column=1, columnspan=2) self.userEntry.focus_set() self.pwdEntry = Entry(master, show='*') self.pwdEntry.grid(row=2, column=1, columnspan=2) self.loginButton = Button(master, text='Login', borderwidth=2, command=self.login) self.loginButton.grid(row=3, column=1) self.clearButton = Button(master, text='Clear', borderwidth=2, command=self.clear) self.clearButton.grid(row=3, column=2) def login(self): self.username = self.userEntry.get().strip() self.passwd = self.pwdEntry.get().strip() if len(self.username) == 0 or len(self.passwd) == 0 or '@' not in self.username: tkMessageBox.showwarning('警告', '用户名或者密码为空或邮件格式不正确') self.clear() self.userEntry.focus_set() return self.getSmtpHost() self.connect() def connect(self): 'this method will try to connet the SMTP server according the current user' HOST = 'smtp.' + self.smtp +'.com' try: self.mySMTP = SMTP(HOST) self.mySMTP.login(self.username, self.passwd) #except SMTPConnectError: except Exception, e: tkMessageBox.showerror('连接错误', '%s' % e) return self.mySendMail = sendMail(self.master, self.mySMTP, self.username) def clear(self): self.userEntry.delete(0, END) self.pwdEntry.delete(0, END) def getSmtpHost(self): 'this method try to obtian the SMTP HOST according the user account' firstSplit = self.username.split('@')[1] self.smtp = firstSplit.split('.')[0]class sendMail(object): 'my sendemail class' def __init__(self, master, smtp='', sender=''): self.smtp = smtp self.sender = sender self.sendPage = Toplevel(master) self.sendToLabel = Label(self.sendPage, text='send to:') self.sendToLabel.grid() self.sendToEntry = Entry(self.sendPage) self.sendToEntry.grid(row=0, column=1) self.subjectLabel = Label(self.sendPage, text='subject:') self.subjectLabel.grid(row=1, column=0) self.subjectEntry = Entry(self.sendPage) self.subjectEntry.grid(row=1, column=1) self.fromToLabel = Label(self.sendPage, text='from to:') self.fromToLabel.grid(row=2, column=0) self.formToAdd = Label(self.sendPage, text=self.sender) self.formToAdd.grid(row=2, column=1) self.sendText = Text(self.sendPage) self.sendText.grid(row=3, column=0, columnspan=2) self.sendButton = Button(self.sendPage, text='send', command=self.sendMail) self.sendButton.grid(row=4, column=0) self.newButton = Button(self.sendPage, text='new mail', command=self.newMail) self.newButton.grid(row=4, column=1) def getMailInfo(self): self.sendToAdd = self.sendToEntry.get().strip() self.subjectInfo = self.subjectEntry.get().strip() self.sendTextInfo = self.sendText.get(1.0, END) def sendMail(self): self.getMailInfo() content = self.sendTextInfo msg = MIMEText(content,_charset='utf-8') msg['Subject'] = self.subjectInfo msg['From'] = self.sender msg['To'] = self.sendToAdd smptSP = ('smtp.163.com',465) try: self.smtp.sendmail(self.sender,self.sendToAdd,msg.as_string()) print u'发送成功.........' except SMTPException as e: print 'Error:',u'邮件无法发送!\n', tkMessageBox.showinfo('提示', '邮件已发送成功!') def newMail(self): self.sendToEntry.delete(0, END) self.subjectEntry.delete(0, END) self.sendText.delete(1.0, END)if __name__ == '__main__': root = Tk() root.title('简易发送邮件程序') myLogin = loginPage(root) #root.wait_window(myLogin.mySendMail.sendPage) mainloop()
阅读全文
0 0
- python2.7 TK界面邮件发送(支持中文)
- python2.7发送邮件
- python发送邮件脚本(支持多个附件,中文)
- 如何将MFMailComposeViewController的发送邮件界面设为中文
- OpenWRT发送邮件(支持TLS)
- python发送中文邮件
- linux 发送中文邮件
- Oracle9发送邮件过程,支持中文邮件与POP3的验证
- spring发送支持HTML邮件
- python 发送邮件,支持邮件内容定义
- Python2.7实现监控Linux内存、CPU并发送预警邮件
- Oracle 存储过程中发送邮件,并支持用户验证、中文标题和内容
- Oracle 存储过程中发送邮件,并支持用户验证、中文标题和内容
- .NET C#邮件群发 支持HTML格式、带附件、中文发送者、密送、抄送
- C#发送邮件小程序(支持群发,附件)
- C#发送邮件小程序(支持群发,附件)
- C#发送邮件小程序(支持群发,附件)
- C#发送邮件小程序(支持群发,附件)winform
- 字符串的运算符重载(如:赋值‘=’、加'+'、加等'+='、下标'[]'相等'=='、不等'!='、大于'>'、输出运算符'<<'以及类型转换)
- #ifndef/#define/#endif使用详解
- Oracle行列互换 横表和纵表
- SpringMVC访问不到静态资源的几种解决方法!
- Android多渠道(平台)打包
- python2.7 TK界面邮件发送(支持中文)
- 第8节-Linux增加、修改、删除、查看用户及组
- JAVA中URL传递中文参数,\%解析 取值是乱码的解决办法
- Android Studio
- 部署在本地的项目实现公网访问--基于Localtunnel实现内网穿透
- 集成百度地图、百度Logo、标尺、缩放控件的显示和隐藏
- 那些年被误导的 Session
- 不容易系列之一(递推+错排公式)
- Cube Stacking -- 并查集