Celery--短信与邮件
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_smssms_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 rescelery_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--短信与邮件的更多相关文章
- MVC使用ASP.NET Identity 2.0实现用户身份安全相关功能,比如通过短信或邮件发送安全码,账户锁定等
本文体验在MVC中使用ASP.NET Identity 2.0,体验与用户身份安全有关的功能: →install-package Microsoft.AspNet.Identity.Samples - ...
- ios 设置亮度、声音;调用发短信、邮件、打电话
一,设置亮度 [[UIScreen mainScreen] setBrightness:0.5];//0.0~1.0 二,设置声音 1,添加 MediaPlayer.framework 框架 2,在需 ...
- IOS中调用系统的电话、短信、邮件、浏览功能
iOS开发系列--通讯录.蓝牙.内购.GameCenter.iCloud.Passbook系统服务开发汇总 2015-01-13 09:16 by KenshinCui, 26990 阅读, 35 评 ...
- ios开发——实用技术篇Swift篇&地址薄、短信、邮件
//返回按钮事件 @IBAction func backButtonClick() { self.navigationController?.popViewControllerAnimated(tru ...
- Android实例-打电话、发短信和邮件,取得手机IMEI号(XE8+小米2)
结果: 1.不提示发短信卡住,点击没有反映,我猜想,可能是因为我用的是小米手机吧. 2.接收短信报错,我猜想可能是我改了里面的方法吧(哪位大神了解,求指教). 3.project -->opti ...
- app后端设计(3)--短信,邮件,推送服务(2014.12.05更新)
在app的后端设计中,免不了消息的推送,短信,邮件等服务,下面就个人的开发经验谈谈这方面. (1)最重要的是,各种推送一定要放在队列系统中处理,不然会严重影响api的响应时间. (2)短信方面 以前我 ...
- zabbix实现电话、短信、邮件报警
该报警方式提前说明:(1)该方式可以实现zabbix免费电话报警以及微信.短信.邮件报警,但有数量限制.详见如下:如数量不能满足需要以及人员需要,可以考虑购买收费版.(2)毕竟是免费版,电话通知要省着 ...
- react-native-communications 电话、短信、邮件、浏览器
第一种方法:Linking:调用系统的电话.短信.邮件.浏览器等功能 Linking.canOpenURL(this.props.url).then(supported => { if (!su ...
- sqlalchemy中使用event设置条件触发短信与邮件通知
一.原因 近期在做短信与邮件通知系统.使用到了这一块.例如,当订单完成以后进行邮件短信的通知.虽然可以采用直接调用接口的方式实现,但有几个原因让我希望使用条件触发的方式 1.由于系统中支持线上线下以及 ...
- 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 <!--页面窗口自动调整到设备 ...
随机推荐
- Echarts入门教程精简实用系列
引语:echarts.js是百度团队推出的一款用于图表可视化的插件,用于以图表的形式展现数据,功能强大,上手简单 1.从官方网站中下载所需的echarts.js文件,该文件因功能广泛,包体较大,可自行 ...
- 前端js部署
1 执行命令 cnpm run build 2.2 提取dist静态资源 将静态资源放置后端static下 /static文件是django后端的部署文件夹 3 Nginx写入配置文件 写入etc ...
- Golang之应用测试
Go 应用测试 测试的覆盖率 命令: go test ./ -v -cover 在<Go Web 编程>一书中,有以下结论: 这并不是绝对的,测试文件可以在不同的包,进行测试也是不会出现问 ...
- Oracle数据导入Mysql中
一.Navicat Premium中的数据迁移工具 为了生产库释放部分资源,需要将API模块迁移到mysql中,及需要导数据. 尝试了oracle to mysql工具,迁移时报错不说,这么大的数据量 ...
- 2020 史上最全IDEA插件总结
最喜欢的一句话: 1.01的365次方=37.78343433289 >>>1 0.99的365次方= 0.02551796445229, 每天进步一点点的目标,贵在坚持 IDEA ...
- C#中的深度学习(三):理解神经网络结构
在这篇文章中,我们将回顾监督机器学习的基础知识,以及训练和验证阶段包括哪些内容. 在这里,我们将为不了解AI的读者介绍机器学习(ML)的基础知识,并且我们将描述在监督机器学习模型中的训练和验证步骤. ...
- Python:大神用的贼溜的实用技巧分享
整理字符串输入 整理用户输入的问题在编程过程中极为常见.通常情况下,将字符转换为小写或大写就够了,有时你可以使用正则表达式模块「Regex」完成这项工作.但是如果问题很复杂,可能有更好的方法来解决: ...
- 强大的动态SQL
1 动态SQL# 那么,问题来了: 什么是动态SQL? 动态SQL有什么作用? 传统的使用JDBC的方法,相信大家在组合复杂的的SQL语句的时候,需要去拼接,稍不注意哪怕少了个空格,都会导致错误.My ...
- Selenium执行JavaScript脚本
JavaScript是运行在客户端(浏览器)和服务器端的脚本语言,允许将静态网页转换为交互式网页.可以通过 Python Selenium WebDriver 执行 JavaScript 语句,在We ...
- maven项目添加jar包
使用集成工具创建一个maven项目,如果需要添加开发包,只需去maven仓库找到对应的包,将配置信息加入pom.xml文件即可.这样,我们就再也不用到处寻找和下载jar包了. 用例:开发工具 STS ...