1 Celery 实现短信--邮件

1.1 容联云-短信

  • from ronglian_sms_sdk import SmsSDK
    
    accountSid = '8a216da8757784cd0175924caccd0b92'
    # 说明:主账号,登陆云通讯网站后,可在控制台首页中看到开发者主账号ACCOUNT SID。 accountToken = '4173b5d8e6ae4126acb3211ab9f4c037'
    # 说明:主账号Token,登陆云通讯网站后,可在控制台首页中看到开发者主账号AUTH TOKEN。 appId = '8a216da8757784cd0175924cadaa0b98'
    # 请使用管理控制台中已创建应用的APPID。 serverIP = 'app.cloopen.com'
    # 说明:请求地址,生产环境配置成app.cloopen.com。 serverPort = '8883'
    # 说明:请求端口 ,生产环境为8883. softVersion = '2013-12-26' # 说明:REST API版本号保持不变。 sdk = SmsSDK(accountSid, accountToken, appId) # tid:模板id 默认为1
    res = sdk.sendMessage('1', '18704992144', ['8888','5'])
    print(res) # 可参考demo中的接口调用文件:SendTemplateSMS.py。

    sms_test / sms.py

  • # import sys
    # sys.path.insert(0,'/root/opwf_project/celery_task') # from main import send_sms
    from celery_task.main import send_sms # send_sms('1','13355555555',('8888','5')) # delay的意思就是把后面的数据发到redis上面去 调用这个redis就会多一条消息多一个任务
    # 紧接着celery就会收到这个任务 for i in range(0,5):
    send_sms.delay('1', '13355555555', ('8888', '5')) # 注意:celery是怎么导进来的 启动celery就怎么启动 #1、celery -A celery_task.main worker -l info => from celery_task.main import send_sms
    #2、celery -A main worker -l info => from main import send_sms

    sms_test / test_celery_sms.py

  • import os
    import sys
    import time
    from celery import Celery #执行celery命令时,需要进入CELERY_BASE_DIR目录执行
    #celery项目中的所有导包地址,都是CELERY_BASE_DIR为基础设定 # CELERY_BASE_DIR = os.path.dirname(os.path.abspath(__file__))
    # sys.path.insert(0,CELERY_BASE_DIR) #增加导包路径 #定义celery实例,需要的参数 1,实例名
    app = Celery('wbh',broker='redis://192.168.56.100:6379/14',backend='redis://192.168.56.100:6379/15') @app.task
    def send_sms(tid, mobile, datas): time.sleep(10)
    from ronglian_sms_sdk import SmsSDK
    accountSid = '8a216da8757784cd0175924caccd0b92'
    # 说明:主账号,登陆云通讯网站后,可在控制台首页中看到开发者主账号ACCOUNT SID。
    accountToken = '4173b5d8e6ae4126acb3211ab9f4c037'
    # 说明:主账号Token,登陆云通讯网站后,可在控制台首页中看到开发者主账号AUTH TOKEN。
    appId = '8a216da8757784cd0175924cadaa0b98'
    # 请使用管理控制台中已创建应用的APPID。
    sdk = SmsSDK(accountSid, accountToken, appId) # tid:模板id 默认为1
    res = sdk.sendMessage(tid, mobile, datas)
    print(res) return res

    celery_task / main.py

1.2 @163.com-邮件

  • import smtplib
    
    mail_host = 'smtp.163.com'  #发送邮件服务器
    mail_user = 'wbhL0478@163.com' # 登录名
    mail_pwd = 'VPAUITGNHJFNRVLN' # 密码 sender = 'wbhL0478@163.com' # 发送人邮箱
    receivers = ['wbhL0478@163.com'] # 接收人邮箱 #邮件内容
    message = """From: From Person <wbhL0478@163.com>
    To: To Person <wbhL0478@163.com>
    Subject: test email This is a test e-mail message.
    """
    try:
    smtpObj = smtplib.SMTP(mail_host) #生成一个发送邮件服务器地址的对象
    smtpObj.login(mail_user,mail_pwd) #连接上服务器登录
    smtpObj.sendmail(sender, receivers, message) #发送邮件
    print ("Successfully sent email")
    except Exception as e:
    print ("Error: unable to send email")

    email_test / email_test

  • from celery_task.main import send_email
    
    send_email.delay("wbhL0478@163.com",["wbhL0478@163.com",],"subject","this is content")

    email_test / test_celery_email.py

  • import os
    import sys
    import time
    from celery import Celery #执行celery命令时,需要进入CELERY_BASE_DIR目录执行
    #celery项目中的所有导包地址,都是CELERY_BASE_DIR为基础设定 # CELERY_BASE_DIR = os.path.dirname(os.path.abspath(__file__))
    # sys.path.insert(0,CELERY_BASE_DIR) #增加导包路径 #定义celery实例,需要的参数 1,实例名
    app = Celery('wbh',broker='redis://192.168.56.100:6379/14',backend='redis://192.168.56.100:6379/15') @app.task
    def send_email(sender,receivers,subject,content):
    import smtplib mail_host = 'smtp.163.com' # 发送邮件服务器
    mail_user = 'wbhL0478@163.com' # 登录名
    mail_pwd = 'VPAUITGNHJFNRVLN' # 密码 # sender = 'wbhL0478@163.com' # 发送人邮箱
    # receivers = ['wbhL0478@163.com'] # 接收人邮箱 # 邮件内容
    message = """From: From Person %s
    To: To Person %s
    Subject: %s %s
    """%(sender,receivers[0],subject,content)
    try:
    smtpObj = smtplib.SMTP(mail_host) # 生成一个发送邮件服务器地址的对象
    smtpObj.login(mail_user, mail_pwd) # 连接上服务器登录
    smtpObj.sendmail(sender, receivers, message) # 发送邮件
    return "Successfully sent email"
    except Exception as e:
    print("Error: unable to send email")

    celery_task / main.py

Celery--短信与邮件的更多相关文章

  1. MVC使用ASP.NET Identity 2.0实现用户身份安全相关功能,比如通过短信或邮件发送安全码,账户锁定等

    本文体验在MVC中使用ASP.NET Identity 2.0,体验与用户身份安全有关的功能: →install-package Microsoft.AspNet.Identity.Samples - ...

  2. ios 设置亮度、声音;调用发短信、邮件、打电话

    一,设置亮度 [[UIScreen mainScreen] setBrightness:0.5];//0.0~1.0 二,设置声音 1,添加 MediaPlayer.framework 框架 2,在需 ...

  3. IOS中调用系统的电话、短信、邮件、浏览功能

    iOS开发系列--通讯录.蓝牙.内购.GameCenter.iCloud.Passbook系统服务开发汇总 2015-01-13 09:16 by KenshinCui, 26990 阅读, 35 评 ...

  4. ios开发——实用技术篇Swift篇&地址薄、短信、邮件

    //返回按钮事件 @IBAction func backButtonClick() { self.navigationController?.popViewControllerAnimated(tru ...

  5. Android实例-打电话、发短信和邮件,取得手机IMEI号(XE8+小米2)

    结果: 1.不提示发短信卡住,点击没有反映,我猜想,可能是因为我用的是小米手机吧. 2.接收短信报错,我猜想可能是我改了里面的方法吧(哪位大神了解,求指教). 3.project -->opti ...

  6. app后端设计(3)--短信,邮件,推送服务(2014.12.05更新)

    在app的后端设计中,免不了消息的推送,短信,邮件等服务,下面就个人的开发经验谈谈这方面. (1)最重要的是,各种推送一定要放在队列系统中处理,不然会严重影响api的响应时间. (2)短信方面 以前我 ...

  7. zabbix实现电话、短信、邮件报警

    该报警方式提前说明:(1)该方式可以实现zabbix免费电话报警以及微信.短信.邮件报警,但有数量限制.详见如下:如数量不能满足需要以及人员需要,可以考虑购买收费版.(2)毕竟是免费版,电话通知要省着 ...

  8. react-native-communications 电话、短信、邮件、浏览器

    第一种方法:Linking:调用系统的电话.短信.邮件.浏览器等功能 Linking.canOpenURL(this.props.url).then(supported => { if (!su ...

  9. sqlalchemy中使用event设置条件触发短信与邮件通知

    一.原因 近期在做短信与邮件通知系统.使用到了这一块.例如,当订单完成以后进行邮件短信的通知.虽然可以采用直接调用接口的方式实现,但有几个原因让我希望使用条件触发的方式 1.由于系统中支持线上线下以及 ...

  10. HTML5的头部、拨号、短信、邮件(转)

    HTML5[语法要点] 一.头部设置 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 <!--页面窗口自动调整到设备 ...

随机推荐

  1. I/O方式(本章最重要)

    目录 程序查询方式 程序查询方式接口结构 例题 本节回顾 程序中断方式 中断的基本概念 工作流程 中断请求 分类 中断请求标记 中断响应 判优实现 优先级设置 中断处理过程 中断隐指令 硬件向量法 中 ...

  2. common 模块的 context.py

    1.context.py  是写正则表达式的,源码如下: import re#s 是目标字符串#dict 是替换的内容#找到目标字符串里面的标识符KEY,去d里面拿到替换的值#替换到s 里面去,然后仔 ...

  3. Kubernetes 最佳安全实践指南

    原文链接:https://fuckcloudnative.io/posts/security-best-practices-for-kubernetes-pods/ 对于大部分 Kubernetes ...

  4. PHP基础再练习

    一.变量 字母 char , string 类型 数字 int,float类型 数组: 需要注意的是 1.变量名 区分大小写 2.数字不能当变量名开头 echo "var_dump就相当于 ...

  5. BUUCTF 刮开有奖 WriteUp

    题目链接 https://buuoj.cn/challenges#%E5%88%AE%E5%BC%80%E6%9C%89%E5%A5%96 题解 用IDA打开,按F5反编译,双击进入DialogFun ...

  6. 你只用do-while来实现循环?太浪费了!

    这是道哥的第010篇原创 目录 前言 在宏定义中的妙用 错误的宏定义 比较好的宏定义 另一个也不错的宏定义 在函数体中的妙用 函数功能:返回错误代码对应的错误字符串 函数功能:通过TCP Socket ...

  7. 如何去掉ul和li前面的小黑点

    做网站的时候经常会遇到如上图所示的小圆点,难看不说,还容易影响布局,下面就介绍几种消除小圆点的方法: 1. 找到相关CSS文件,在.ul 和.li 部分添加: 1 list-style: none; ...

  8. Excel-RANK函数排名与拓展

    问题场景 需求不同根据总分出排名(从大到小100分.100分.99分.98分.97分),排名需求: 第一种排名:第1名,第2名,第3名,第4名,第5名: 第二种排名:第1名,第1名,第3名,第4名,第 ...

  9. 微信小程序--关于加快小程序开发的几个小建议

    加快小程序开发的几个小建议 1.使用 app.json创建页面 ​ 按照我们平常的开发习惯,创建一个新的页面,一般都会先创建文件夹,再创建对应page的形式,创建完成后,app.json中会自动注册该 ...

  10. JAVA十大经典排序算法最强总结(含JAVA代码实现)

    0.排序算法说明 0.1 排序的定义 对一序列对象根据某个关键字进行排序. 0.2 术语说明 稳定:如果a原本在b前面,而a=b,排序之后a仍然在b的前面: 不稳定:如果a原本在b的前面,而a=b,排 ...