#encoding:utf-8 from email.header import Header from email.mime.text import MIMEText from email.utils import parseaddr, formataddr #解析email import smtplib class Email(): def __init__(self, from_addr, from_pass, from_user, from_server, to_addr, to_user, encode = 'utf-8', ): self.encode = encode self.from_addr = from_addr self.from_pass = from_pass self.from_user = from_user self.from_server = from_server self.to_addr = to_addr self.to_user = to_user def formates(self,s): name,addr = parseaddr(s) return formataddr((Header(name, self.encode).encode(),addr.encode(self.encode) if isinstance(addr, unicode) else addr)) def editor(self, subject = '无主题', word = '无内容', type = 'text'): msg = MIMEText(word, type, self.encode) msg['From'] = self.from_user + ' ' + self.formates(u'<%s>' %( self.from_addr)) msg['To'] = self.to_user + ' ' + self.formates(u'<%s>' %(self.to_addr)) msg['Subject'] = Header(subject, 'utf-8').encode() return msg def login(self): # 先验证是否能登录成功,登录成功后才能发送 # 自己设置发送后显示的人名称 try: self.smtp = smtplib.SMTP(self.from_server, 587) self.smtp.starttls() self.smtp.set_debuglevel(1) if self.smtp.login(self.from_addr, self.from_pass): return True else: return False except: print '验证异常' def send(self, msg): try: if self.login(): print '登录成功' self.smtp.sendmail(self.from_addr, self.to_addr, msg.as_string()) else: print '登录失败' except: print '发送异常' finally: self.smtp.quit() def index(): from_addr = '****发件人邮箱****' from_pass = '*****16位密钥****' from_user = '****发件人名字****' from_server = 'smtp.qq.com' to_addr = '****收件人邮箱****' to_user = '****收件人名字****' from_subject = '毕业设计要求' from_content = "发件人:和毕设模版参考内容和格式。" email = Email(from_addr, from_pass, from_user, from_server, to_addr, to_user, 'utf-8') email.send(email.editor(from_subject, from_content, 'html')) if __name__ == '__main__': index()
Sign in to make a reply
云中仙客_