zoukankan      html  css  js  c++  java
  • dajngo-利用配置反射调用模块-发送邮件

    第一:优先写好email文件代码,

    import smtplib
    from email.mime.text import MIMEText
    from email.utils import formataddr
    from utlis.massage.base import Baseemail
    
    class Email(Baseemail):
        def __init__(self):
            self.fromname='帅哥'
            self.fromemail='******.com'  #自己的邮箱
            self.pwd='*******'      #邮箱密码
    
        def send(self,subject,body,toemail,name):
    
            msg = MIMEText(body, 'plain', 'utf-8')  # 发送内容
            msg['From'] = formataddr([self.fromname, self.fromemail])  # 发件人
            msg['To'] = formataddr([name, toemail])  # 收件人
            msg['Subject'] = subject  # 主题
    
            server = smtplib.SMTP("smtp.qq.com", 25) # SMTP服务
            server.login(self.fromemail, self.pwd) # 邮箱用户名和密码
            server.sendmail(self.fromemail, [toemail, ], msg.as_string()) # 发送者和接收者
            server.quit()

     第二部:写好配置信息,以后要改只要改配置信息就行.

    MASSAGE=[
        'utlis.massage.email.Email',    #utlis.massage.email是上面email的路径信息, Email是emial的类.
    ]

    第三部:

    import importlib
    from django.conf import settings
    
    def send_massage(subject,name,toemail,body):
        for msg in settings.MASSAGE:          #从settings中取到配置信息
            model_path,class_name=msg.rsplit('.',maxsplit=1)    #'utlis.massage.email.Email'取出来从右边的第一个. 切分,取到路径和调用的类字符串
        m=importlib.import_module(model_path)     #利用上面的字符串找到路径
        obj
    =getattr(m,class_name)()         #反射, 路径信息找到py文件,其实就是以个大模块,所以可以用反射找到里面的一个类,并且把该类实例化
        obj.send(subject,body,toemail,name)    #调用这个类的send()方法.
  • 相关阅读:
    重载小于号
    无聊的会议
    程序内存和时间
    对拍
    读入和输出优化
    codevs 3269 混合背包
    清北第三套题
    codevs 2188 最长上升子序列
    清北第二套题
    [COGS896] 圈奶牛
  • 原文地址:https://www.cnblogs.com/52forjie/p/8139460.html
Copyright © 2011-2022 走看看