Python调用阿里云短信服务发送短信/验证码 配置权限短信服务需要当前阿里云账号为企业认证1. 创建RAM用户使用阿里云的主账号进入https://ram.console.aliyun.com/users/create创建RAM用户然后登录这个RAM用户进入https://ram.console.aliyun.com/profile/access-keys网址创建AccessKey进入短信服务的控制台https://dysms.console.aliyun.com/domestic/text/qualification以此完成资质管理验证签名管理模板管理2. 配置测试用户在没有审核通过前只能够给测试用户发送短信进入网页https://dysms.console.aliyun.com/quickstart即可配置测试用户示例代码首先安装依赖pipinstallalibabacloud_dysmsapi20170525importosimportrandomimportjsonfromalibabacloud_dysmsapi20170525.clientimportClientasDysmsapiClientfromalibabacloud_dysmsapi20170525importmodelsasdysmsapi_modelsfromalibabacloud_tea_openapiimportmodelsasopen_api_modelsfromalibabacloud_tea_utilimportmodelsasutil_modelsfromdotenvimportload_dotenv load_dotenv()# 本地新建一个.env的文件把下面的配置写进去classSmsService:阿里云短信服务类def__init__(self):self.access_key_idos.getenv(ALIBABA_CLOUD_ACCESS_KEY_ID)self.access_key_secretos.getenv(ALIBABA_CLOUD_ACCESS_KEY_SECRET)self.sign_name我的签名# 控制台审核通过的签名self.template_codeSMS_xxxx# 控制台审核通过的模板CODEself.endpointdysmsapi.aliyuncs.com# 初始化客户端self._clientself._create_client()def_create_client(self):创建短信客户端configopen_api_models.Config(access_key_idself.access_key_id,access_key_secretself.access_key_secret)config.endpointself.endpointreturnDysmsapiClient(config)defsend_verify_code(self,phone_number:str,code:strNone)-dict: 发送验证码短信 Args: phone_number: 接收手机号 code: 验证码如果不传则自动生成 Returns: 发送结果字典 # 如果没有传入验证码自动生成ifcodeisNone:code.join([str(random.randint(0,9))for_inrange(6)])# 生成随机验证码# 构建模板参数template_paramjson.dumps({code:code})# 构建请求requestdysmsapi_models.SendSmsRequest(phone_numbersphone_number,sign_nameself.sign_name,template_codeself.template_code,template_paramtemplate_param)try:# 发送短信responseself._client.send_sms_with_options(request,util_models.RuntimeOptions())bodyresponse.body# 解析响应result{success:body.codeOK,code:body.code,message:body.message,request_id:body.request_id,biz_id:body.biz_id,verify_code:codeifbody.codeOKelseNone}returnresultexceptExceptionase:return{success:False,code:Error,message:str(e),verify_code:None}# 使用示例 if__name____main__:# 创建服务实例smsSmsService()resultsms.send_verify_code(xxxxxx)直接运行即可发送短信