zlwu 355485c4e9 提交 10 tháng trước cách đây
..
README.md 5f4fc7d499 提交 10 tháng trước cách đây
requirements.txt 5f4fc7d499 提交 10 tháng trước cách đây
send.conf 355485c4e9 提交 10 tháng trước cách đây
send_international_sms.py 355485c4e9 提交 10 tháng trước cách đây
start_prod.sh 355485c4e9 提交 10 tháng trước cách đây
status_prod.sh 355485c4e9 提交 10 tháng trước cách đây
stop_prod.sh 355485c4e9 提交 10 tháng trước cách đây

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 次/秒

参考文档