Discuss / Python / 上代码,能直接运行

上代码,能直接运行

Topic source

云中仙客_

#1 Created at ... [Delete] [Delete and Lock User]
#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()

  • 1

Reply