python3实现阿里云短信发送功能

发布时间 2023-03-26 21:24:08作者: 何双新
# -*- coding: utf-8 -*-
import sys
from aliyunsdkdysmsapi.request.v20170525 import SendSmsRequest
from aliyunsdkdysmsapi.request.v20170525 import QuerySendDetailsRequest
from aliyunsdkcore.client import AcsClient
import uuid
from aliyunsdkcore.profile import region_provider
"""
"""
try:
    reload(sys)
    sys.setdefaultencoding('utf8')
except NameError:
    pass
except Exception as err:
    raise err

# 注意:不要更改
REGION = "cn-hangzhou"
PRODUCT_NAME = "Dysmsapi"
DOMAIN = "dysmsapi.aliyuncs.com"
ACCESSKEY = '你的Key'
ACCESS_SECRET = '你的Secret'

class AliSms:

    @staticmethod
    def send_sms(business_id, phone_numbers, sign_name, template_code, template_param=None):
        acs_client = AcsClient(ACCESSKEY, ACCESS_SECRET, REGION)
        region_provider.add_endpoint(PRODUCT_NAME, REGION, DOMAIN)
        smsRequest = SendSmsRequest.SendSmsRequest()
        # 申请的短信模板编码,必填
        smsRequest.set_TemplateCode(template_code)
        # 短信模板变量参数
        if template_param is not None:
            smsRequest.set_TemplateParam(template_param)
        # 设置业务请求流水号,必填。
        smsRequest.set_OutId(business_id)
        # 短信签名
        smsRequest.set_SignName(sign_name)
        smsRequest.set_PhoneNumbers(phone_numbers)
        # 调用短信发送接口,返回json
        smsResponse = acs_client.do_action_with_exception(smsRequest)
        return smsResponsed
调用方式:
result = AliSms.send_sms(__business_id, phone, "智加数字", "SMS_20230619",json.dumps({'key':'value'}))