博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
发送消息提醒
阅读量:4557 次
发布时间:2019-06-08

本文共 2264 字,大约阅读时间需要 7 分钟。

1、文件结构:

-message

  -__init__.py

  -base.py

  -dingding.py

  -email.py

  -msg.py

  -wx.py

2、配置文件(以Django配置为例)

MESSAGE_CLASSES = [    'utils.message.email.Email',    'utils.message.msg.Msg',    'utils.message.wx.WeChat',    'utils.message.dingding.DingDing',]#根目录下有个utils文件夹,message文件夹放在该目录下

  

3、文件内容

__init__.py

import importlibfrom django.conf import settingsdef send_message(to,name,subject,body):    """    短信、邮件、微信    :param to: 接受者     :param name: 接受者姓名    :param subject: 主题    :param body: 内容    :return:     """    for cls_path in settings.MESSAGE_CLASSES:        # cls_path是字符串        module_path,class_name = cls_path.rsplit('.',maxsplit=1)        m = importlib.import_module(module_path)        obj = getattr(m,class_name)()        obj.send(subject,body,to,name,)

  

base.py

class BaseMessage(object):    def send(self, subject, body, to, name):        raise NotImplementedError('未实现send方法')

  

dingding.py

from .base import BaseMessageclass DingDing(BaseMessage):    def __init__(self):        pass    def send(self,subject,body,to,name):        print('钉钉消息发送成功')

  

email.py

#!/usr/bin/env python# -*- coding:utf-8 -*-import smtplibfrom email.mime.text import MIMETextfrom email.utils import formataddrfrom .base import BaseMessageclass Email(BaseMessage):    def __init__(self):        self.email = "your email"        self.user = "your nickname"        self.pwd = 'your email password'    def send(self,subject,body,to,name):        msg = MIMEText(body, 'plain', 'utf-8')  # 发送内容        msg['From'] = formataddr([self.user,self.email])  # 发件人        msg['To'] = formataddr([name, to])  # 收件人        msg['Subject'] = subject # 主题        server = smtplib.SMTP("SMTP服务", 25) # SMTP服务        server.login(self.email, self.pwd) # 邮箱用户名和密码        server.sendmail(self.email, [to, ], msg.as_string()) # 发送者和接收者        server.quit()

  

msg.py

#!/usr/bin/env python# -*- coding:utf-8 -*-from .base import BaseMessageclass Msg(BaseMessage):    def __init__(self):        pass    def send(self,subject,body,to,name):        print('短信发送成功')

  

wx.py

from .base import BaseMessageclass WeChat(BaseMessage):    def __init__(self):        pass    def send(self,subject,body,to,name):        print('微信发送成功')

  

转载于:https://www.cnblogs.com/wangbaihan/p/8138269.html

你可能感兴趣的文章
第六周小组作业:软件测试和评估
查看>>
linux Cacti监控服务器搭建
查看>>
debian(kali Linux) 安装net Core
查看>>
centos 7防火墙设置
查看>>
自定义进度条(圆形、横向进度条)
查看>>
spark-streaming-kafka采坑
查看>>
9.Mongodb与python交互
查看>>
18-[JavaScript]-函数,Object对象,定时器,正则表达式
查看>>
读取短信回执
查看>>
EF 数据初始化
查看>>
PreparedStatement与Statement
查看>>
WebService -- Java 实现之 CXF ( 使用CXF工具生成client 程序)
查看>>
[LeetCode]Two Sum
查看>>
Android学习--网络通信之网络图片查看器
查看>>
[LeetCode] Excel Sheet Column Number
查看>>
安卓广播接收者
查看>>
999线监控
查看>>
Redis在python中的使用
查看>>
理解class.forName()
查看>>
每日一小练——数值自乘递归解
查看>>