zlwu 355485c4e9 提交 10 месяцев назад
..
README.md 5f4fc7d499 提交 10 месяцев назад
requirements.txt 5f4fc7d499 提交 10 месяцев назад
send.conf 355485c4e9 提交 10 месяцев назад
send_international_sms.py 355485c4e9 提交 10 месяцев назад
start_prod.sh 355485c4e9 提交 10 месяцев назад
status_prod.sh 355485c4e9 提交 10 месяцев назад
stop_prod.sh 355485c4e9 提交 10 месяцев назад

README.md

阿里云国际短信发送 Demo

功能说明

使用阿里云 SMS 服务发送国际短信的独立 Python 脚本。

  • ✅ 支持发送到美国、加拿大、新加坡等国家/地区
  • ✅ 支持 OTP(验证码)、NOTIFY(通知)、MKT(推广)三种类型
  • ✅ 完整的错误处理和响应解析

安装依赖

pip install -r requirements.txt

或直接安装:

pip install alibabacloud-dysmsapi20180501

配置说明

1. AccessKey 配置

AccessKey 已直接配置在脚本中(main() 函数),无需额外配置环境变量。

如需修改 AccessKey,请编辑 send_international_sms.py 文件中的以下变量:

ACCESS_KEY_ID = 'LTAI5tQ6iFj9XMSZygRhKL4F'
ACCESS_KEY_SECRET = 'eXEfRLenQfOCLWkj307jv48rBUWNHK'

2. Sender ID 注册要求

国家/地区 注册要求
美国、加拿大 需完成 10 DLC 注册,使用运营商提供的 Sender ID
新加坡 需在 IMDA 完成 SSIR 注册的 Sender ID
其他地区 支持 Sender ID 发送,数字+字母最长11位,纯数字最长15位

使用方法

基本用法

from send_international_sms import InternationalSMSClient

# 创建客户端
client = InternationalSMSClient(
    access_key_id='your-access-key-id',
    access_key_secret='your-access-key-secret'
)

# 发送验证码短信
result = client.send_sms(
    to="6212345****01",  # 国际区号+号码
    message="Your verification code is 123456",
    sender_id="Alicloud",  # 已注册的 Sender ID
    sms_type=InternationalSMSClient.TYPE_OTP
)

if result["success"]:
    print(f"发送成功! 消息ID: {result['message_id']}")
else:
    print(f"发送失败: {result['error']}")

运行示例

python send_international_sms.py

API 参数说明

请求参数

参数 类型 必选 说明
To String 是 接收短信号码,格式:国际区号+号码,例如 "8521245567****"
From String 是 发送方标识(Sender ID),需根据目标国家完成相应注册
Message String 是 短信完整内容(美国、加拿大需填写报备内容)
Type String 是 短信类型:OTP(验证码)/ NOTIFY(通知)/ MKT(推广)
TaskId String 否 任务 ID,长度不超过 255 个字符
ValidityPeriod Integer 否 短信有效时长,单位:秒
ChannelId String 否 通道 ID

返回数据

成功响应示例:

{
    "success": true,
    "response_code": "OK",
    "response_description": "The SMS Send Request was accepted",
    "message_id": "1008030300****",
    "request_id": "F655A8D5-B967-440B-8683-DAD6FF8DE990",
    "segments": "1",
    "to": "8521245567****",
    "from": "Alicloud321",
    "number_detail": {
        "carrier": "CMI",
        "country": "Hongkong,China",
        "region": "HongKong"
    }
}

失败响应示例:

{
    "success": false,
    "error": "错误信息",
    "request_id": "xxx"
}

注意事项

  1. 计费说明: 接口调用成功即按条计费,发送返回"失败"同样计费
  2. QPS 限制: 单用户 QPS 限制为 2000 次/秒
  3. 固定配置:
    • region_id 必须为 ap-southeast-1(新加坡)
    • endpoint 必须为 dysmsapi.ap-southeast-1.aliyuncs.com
    • API 版本为 2018-05-01
  4. 内容审核: 美国、加拿大发送的内容需提前报备
  5. 账户余额: 套餐包在账户欠费时不可使用,请在调用接口前检查账户余额及套餐包余量

API 版本说明

  • API 版本: 2018-05-01
  • 服务地址: 新加坡(ap-southeast-1)
  • Endpoint: dysmsapi.ap-southeast-1.aliyuncs.com
  • QPS 限制: 单用户 QPS 限制为 2000 次/秒

参考文档