当前位置: 首页 > news >正文

Python调用阿里云短信服务发送短信/验证码

配置权限

短信服务需要当前阿里云账号为企业认证

1. 创建RAM用户

  1. 使用阿里云的主账号,进入https://ram.console.aliyun.com/users/create创建RAM用户
  2. 然后登录这个RAM用户,进入https://ram.console.aliyun.com/profile/access-keys网址,创建AccessKey
  3. 进入短信服务的控制台:https://dysms.console.aliyun.com/domestic/text/qualification,以此完成:
    • 资质管理(验证)
    • 签名管理
    • 模板管理

2. 配置测试用户

在没有审核通过前,只能够给测试用户发送短信,进入网页https://dysms.console.aliyun.com/quickstart,即可配置测试用户

示例代码

首先安装依赖:

pipinstallalibabacloud_dysmsapi20170525
importosimportrandomimportjsonfromalibabacloud_dysmsapi20170525.clientimportClientasDysmsapiClientfromalibabacloud_dysmsapi20170525importmodelsasdysmsapi_modelsfromalibabacloud_tea_openapiimportmodelsasopen_api_modelsfromalibabacloud_tea_utilimportmodelsasutil_modelsfromdotenvimportload_dotenv load_dotenv()# 本地新建一个.env的文件,把下面的配置写进去classSmsService:"""阿里云短信服务类"""def__init__(self):self.access_key_id=os.getenv('ALIBABA_CLOUD_ACCESS_KEY_ID')self.access_key_secret=os.getenv('ALIBABA_CLOUD_ACCESS_KEY_SECRET')self.sign_name="我的签名"# 控制台审核通过的签名self.template_code="SMS_xxxx"# 控制台审核通过的模板CODEself.endpoint="dysmsapi.aliyuncs.com"# 初始化客户端self._client=self._create_client()def_create_client(self):"""创建短信客户端"""config=open_api_models.Config(access_key_id=self.access_key_id,access_key_secret=self.access_key_secret)config.endpoint=self.endpointreturnDysmsapiClient(config)defsend_verify_code(self,phone_number:str,code:str=None)->dict:""" 发送验证码短信 Args: phone_number: 接收手机号 code: 验证码,如果不传则自动生成 Returns: 发送结果字典 """# 如果没有传入验证码,自动生成ifcodeisNone:code=''.join([str(random.randint(0,9))for_inrange(6)])# 生成随机验证码# 构建模板参数template_param=json.dumps({"code":code})# 构建请求request=dysmsapi_models.SendSmsRequest(phone_numbers=phone_number,sign_name=self.sign_name,template_code=self.template_code,template_param=template_param)try:# 发送短信response=self._client.send_sms_with_options(request,util_models.RuntimeOptions())body=response.body# 解析响应result={"success":body.code=="OK","code":body.code,"message":body.message,"request_id":body.request_id,"biz_id":body.biz_id,"verify_code":codeifbody.code=="OK"elseNone}returnresultexceptExceptionase:return{"success":False,"code":"Error","message":str(e),"verify_code":None}# ========== 使用示例 ==========if__name__=="__main__":# 创建服务实例sms=SmsService()result=sms.send_verify_code("xxxxxx")

直接运行即可发送短信

http://www.jsqmd.com/news/891239/

相关文章:

  • 高光谱图像处理距离函数全解析:从欧几里得到ECS的实战选型指南
  • ChatGPT降重黑箱破解:基于BERT-SCORE与ROUGE-L双指标验证的语义保留率TOP3策略(稀缺实验数据包)
  • 叙事脚本与模拟社交平台:青少年数字素养教育的创新实践
  • 学术写作必备!GPT-5.5辅助三重校验法:从逻辑到术语精准的创新点锁定指南
  • 怎样高效使用Runtime Unity Editor:5个实用秘诀完全指南
  • 3步完成Windows 11终极优化:Win11Debloat完整使用指南
  • 导师推荐!盘点2026年当红之选的AI论文工具
  • AG-CLIP:基于属性引导的细粒度零样本视觉识别技术详解
  • 数字孪生的核心构成要素解析
  • 大模型Agent面试通关:100题精讲(基础篇),助你面试加码30分!
  • 3PEAK思瑞浦 TPA6582Q-VS1R-S MSOP8 运算放大器
  • 嵌入式SIR可调谐腔体滤波器设计:实现52.4%宽调谐与恒定带宽
  • 腾讯云代理商:腾讯云云桌面如何部署Hermes Agent?
  • 防火墙双机热备(主备模式)配置实战指南
  • 大理石方箱批发厂家资质与交付能力客观解析 - 奔跑123
  • 5步掌握Django电子商务项目实战:从零构建完整电商系统
  • Tablacus Explorer:终极免费文件管理器快速入门指南
  • 1-14.模块代码在哪里找
  • 小样本时间序列分类:多模态编码与元特征融合框架解析
  • 如何为你的Python项目快速接入多个大模型API并统一管理
  • 【Perforce】Klocwork-规则包导入及同步Validate
  • 2026西安灭老鼠公司TOP10榜单|本地正规灭鼠机构客观实力测评 - 资讯速览
  • 1-15.代码看不懂怎么办
  • Agent应用实践之十 - 三驾马车:提示词之结构化输出
  • 武汉国电华美车载式高压无局放,现场干活儿的得力帮手
  • 3个实用技巧高效掌握MulimgViewer:免费多图对比与批量处理指南
  • 【顶刊作者不愿公开的ChatGPT学术黑箱】:Nature/Science投稿团队内部使用的6个提示词模板(含伦理审查备案话术)
  • FPGA架构创新:MRSA如何实现Scrypt算法23倍GPU能效?
  • NSudo系统权限管理工具完整指南:5分钟掌握Windows高级权限控制
  • 兴化楼市观察:改善需求下的现房低密选择 - 花开富贵112