当前位置: 首页 > 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.rkmt.cn/news/1393693.html

相关文章:

  • 怎样高效使用Runtime Unity Editor:5个实用秘诀完全指南
  • 如何快速配置LXMusic音源:面向新手的完整指南与实战教程
  • ElementUI主题定制终极指南:3步打造个性化界面
  • 别再手动读100篇论文了!ChatGPT文献综述生成终极工作流:PDF解析→关键论点抽取→矛盾点标定→理论框架图谱自动生成
  • 深度解析Runtime Unity Editor:实时反射注入与动态调试架构设计
  • MIPI CSI-2协议栈深度解析:从物理层到应用层的全链路数据流
  • 数字孪生的核心构成要素解析
  • 导师推荐!盘点2026年当红之选的AI论文工具
  • 【ChatGPT学术引用黄金标准】:2024年全球主流期刊/高校认可的7种AI引用格式权威指南
  • 企业级AI中台接入规范V2.3(含Swagger AI扩展协议、语义化错误码表、可观测性埋点标准)
  • 【企业级文档智能中枢构建指南】:用Claude实现合同/财报/专利长文档端到端推理闭环,含RAG增强+分块策略+证据溯源三重加固
  • 终极iOS降级指南:FutureRestore完整教程与实战技巧
  • OpenKore自动化客户端架构深度解析与技术实战
  • 面向电商业务的智能数据分析 Agent 设计
  • 防火墙双机热备(主备模式)配置实战指南
  • 【Perforce】Klocwork-规则包导入及同步Validate
  • 3PEAK思瑞浦 TPA6582Q-SO1R-S SOP8 运算放大器
  • 构建企业级实时通信平台:Rocket.Chat Android原生客户端架构深度解析
  • 企业如何利用Taotoken为内部知识库构建智能问答模块
  • 支付宝宣布完成AI支付的全域布局,支持95%通用智能体
  • Realtek r8125 DKMS驱动:彻底解决Linux下2.5G网卡的内核兼容性问题
  • 企业微信Java SDK架构设计与高级应用深度解析
  • PurePath Controller(PP_controller)路径跟踪控制器
  • NSudo系统权限管理工具完整指南:5分钟掌握Windows高级权限控制
  • Outfit字体:免费开源的终极品牌字体解决方案,轻松打造专业视觉体验
  • HNU计院操作系统实验8
  • IDM永久激活终极指南:免费解锁完整功能的最佳解决方案
  • 兴化楼市观察:改善需求下的现房低密选择 - 花开富贵112
  • 无监督动态图神经网络:从图嵌入到时序对齐的完整实践
  • 1-16.调试图片是什么?怎么生成?