You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python Twilio应用问题:遍历号码列表仅发送首个号码

排查Twilio短信迭代未遍历列表的问题

嘿,我来帮你揪出这个问题的根源!从你描述的现象——循环跑了两次但都给同一个号码发了短信——来看,问题基本出在循环逻辑或者号码列表的使用上,咱们一步步拆解:

最可能的原因:发送时未使用迭代变量

这是新手用Twilio时最容易踩的坑:你在循环里写死了接收号码,而没有用循环遍历的列表元素。比如你的代码可能是这样的:

# 错误示例
phone_numbers = ["+1目标号码1", "+1目标号码2"]
client = Client(account_sid, auth_token)

for num in phone_numbers:
    # 这里硬编码成了你自己的号码,而不是用迭代变量num
    client.messages.create(to="+1你自己的号码", from_=twilio_number, body="测试短信")
    time.sleep(10)

这种情况下,不管循环多少次,都会发给你自己的号码,而不会遍历列表里的两个目标号码。

其他可能的原因

  • 号码列表定义错误:你以为存了两个不同号码,但实际上列表里是两个相同的号码(比如手滑复制了两次自己的号)。可以先打印列表确认:print(phone_numbers),看看输出是不是两个不同的号码。
  • 迭代变量被意外覆盖:如果在循环内部的代码里,你重新给迭代变量赋值了(比如num = "+1你自己的号码"),那也会导致每次循环都用被覆盖后的号码。

修复方案

调整代码,确保create方法的to参数使用循环的迭代变量,比如:

# 正确示例
from twilio.rest import Client
import time

account_sid = "你的Account SID"
auth_token = "你的Auth Token"
twilio_number = "+1你的Twilio号码"
phone_numbers = ["+1目标号码1", "+1目标号码2"]

client = Client(account_sid, auth_token)

for target_num in phone_numbers:
    message = client.messages.create(
        to=target_num,
        from_=twilio_number,
        body="这是测试短信"
    )
    print(f"已向{target_num}发送短信,SID:{message.sid}")
    time.sleep(10)

这样循环就会依次遍历列表里的每个号码,给不同的接收者发送短信了。

内容的提问来源于stack exchange,提问作者RustyShackleford

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 09:54:35