Python调用aliyun短信接口发短信

#!/usr/bin/env python
#coding=utf-8
import commands
import time
import datetime
import os

from aliyunsdkcore.client import AcsClient
from aliyunsdkcore.request import CommonRequest
from aliyunsdkcore.auth.credentials import AccessKeyCredential
from aliyunsdkcore.auth.credentials import StsTokenCredential

def send_message(start_time):

    messages = {"env": "pro","svc_name": "tts-core","time": "2021"}
    messages['time'] = str(start_time)

    credentials = AccessKeyCredential('AccessKeyID', 'AccessKeySecrt');
    client = AcsClient(region_id='cn-hangzhou', credential=credentials)

    request = CommonRequest()
    request.set_accept_format('json')
    request.set_domain('dysmsapi.aliyuncs.com')
    request.set_method('POST')
    request.set_protocol_type('https') # https | http
    request.set_version('2017-05-25')
    request.set_action_name('SendSms')

    #request.add_query_param('TemplateParam', "{'env': '生产','svc_name': 'tts-core','time': '2021'}")
    request.add_query_param('TemplateParam', messages)
    request.add_query_param('PhoneNumbers', "13638663350,18674089724") # 给刘侃发短信
    # request.add_query_param('PhoneNumbers', "12345678901,12345678902")    # 多号码的写法
    # request.add_query_param('PhoneNumbers', "12345678901")    # 单号码的写法
    request.add_query_param('SignName', "短信签名")	# 替换短信签名
    request.add_query_param('TemplateCode', "SMS_xxxxx") # 替换模版CODE

    response = client.do_action(request)
    #print(str(response, encoding = 'utf-8')) # python3
    print(response)



#start_time = commands.getoutput("date -d \"$(kubectl describe -n pro-mml po $(kubectl get po -n pro-mml | grep tts-core | head -n 1 | awk -F ' ' '{print$1}') | grep 'Start Time' | awk -F ',' '{print$2}')\" \"+%F %T\"")

pod_time = int(commands.getoutput("date -d \"$(kubectl describe -n pro-mml po $(kubectl get po -n pro-mml | grep tts-core | head -n 1 | awk -F ' ' '{print$1}') | grep 'Start Time' | awk -F ',' '{print$2}')\" +%s"))
now_time = int(time.time())
start_time = datetime.datetime.fromtimestamp(pod_time).strftime("%Y-%m-%d %H:%M:%S")
compute = now_time-pod_time

if compute < 60:
	
	# 发短信
    send_message(start_time)
	
	# 发邮件
    os.system("echo '生产环境 jp-tts-core-1 服务已于 %s 启动或重启,请检查批处理是否需要重启!' | mail -s '生产环境 jp-tts-core-1 服务已启动或重启!' [email protected] [email protected] [email protected]" % (start_time))

最后更新于