• python封装email模块


    一、代码

    from email.mime.text import MIMEText
    from email.header import Header
    from email.utils import parseaddr, formataddr
    from smtplib import SMTP_SSL
    
    
    class MailManager(object):
        smtp_server = 'smtp.qq.com'
    
        def __init__(self, from_addr, password, to_addr, type,name=''):
            '''
            :param from_addr: 发送者
            :param password: 授权码
            :param to_addr: 接受者
            :param type: 发送类型,html,plain
            :param name: 邮件标题
            '''
            self.password = password
            self.from_addr = from_addr
            self.to_addr = to_addr
            self.name = name
            self.type=type
    
        @staticmethod
        def _format_addr(s):
            # 格式化email的头部信息
            name, addr = parseaddr(s)
            return formataddr((Header(name, 'utf-8').encode(), addr))
    
        def newMail(self, content):
            # 创建一个MIMEText对象,content邮件正文内容
            msg = MIMEText(content, self.type, 'utf-8')
            msg['From'] = self._format_addr(self.name + '后台系统 <%s>' % self.from_addr)
            msg['To'] = self._format_addr(self.name + '客服 <%s>' % self.to_addr)
            # 邮件标题
            msg['Subject'] = Header(self.name + '系统通知', 'utf-8').encode()
            return msg
    
        def send(self, msg):
            # 通过ssl方式发送,服务器地址,端口
            server = SMTP_SSL(self.smtp_server, 465)
            # 登录到邮箱
            server.login(self.from_addr, self.password)
            # 发送邮件:发送方,收件方,要发送的消息
            server.sendmail(self.from_addr, [self.to_addr], msg.as_string())
            server.quit()
    
        def SendMail(self, content):
            try:
                msg = self.newMail(content)
                self.send(msg)
            except Exception as e:
                print(e)
    
    if __name__ == '__main__':
        email=MailManager(from_addr="填写自己的",
                          password="填写自己的",
                          to_addr="填写自己的",
                          name="orange",
                          type="html")
        email.SendMail('''
        <p><a href="http://www.baidu.com">这是一个链接</a></p>
        ''')
  • 相关阅读:
    C# 依据鼠标坐标取网页内成员坐标.ie
    C# WebBrowser获取指定字符串的坐标
    C#获取网页中某个元素的位置,并模拟点击
    qq空间认证教程:借助企鹅媒体平台认证QQ公众空间
    QQ空间认证之数据篇
    QQ空间运营 怎么做一个QQ人气号?
    QQ空间|qq人气号怎么赚钱?
    QQ好友的价值玩法 及如何搞到几万好友?
    新媒体运营之如何月涨十万粉
    社群经济:如何利用社群做营销?
  • 原文地址:https://www.cnblogs.com/angelyan/p/11199757.html
Copyright © 2020-2023  润新知