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

使用Google SMTP发送短信失败:代码无报错但未收到短信

问题排查:代码无报错但收不到短信

以下是几个可能的问题及解决办法:

  • 目标号码格式错误
    代码里to_number = '0000{}'.format(carriers['att'])中的0000是占位符,必须替换为完整的10位对应运营商手机号码(比如1234567890),同时要确认该号码确实属于AT&T,运营商网关不匹配会直接导致消息无法送达。

  • 运营商网关地址存在错误
    你定义的carriers字典里,tmobile对应的网关有多余空格,应改为'@tmomail.net'而非' @tmomail.net';另外部分运营商网关可能已更新(比如Sprint归属T-Mobile后原网关可能失效),建议核对目标运营商当前有效的官方SMS/MMS网关地址。

  • 消息格式不符合网关要求
    多数运营商网关要求消息遵循标准邮件格式,纯文本内容可能被拦截。可以将消息包装为带主题的格式:

    omessage = "Subject: \n\nHi this is test."
    

    即使主题为空,也需要包含Subject:字段来符合邮件规范。

  • Gmail SMTP连接未正确关闭
    发送消息后未关闭SMTP连接,可能导致消息未完全发送。建议在server.sendmail后添加:

    server.quit()
    

    确保连接正常终止,消息完整提交。

  • Gmail账号权限验证问题
    虽然使用了应用专用密码,但需确认:

    • 你的Google账号已开启两步验证(应用专用密码仅对开启两步验证的账号生效);
    • 检查Gmail账号的“最近活动”,确认SMTP登录未被标记为异常操作。
  • 运营商拦截或号码限制
    部分运营商会过滤来自未知邮箱的消息,可先手动从Gmail发送邮件到目标号码的网关地址(比如1234567890@mms.att.net),测试是否能收到,排除代码外的问题;另外预付费套餐、虚拟运营商号码可能不支持网关短信接收,可换用其他号码测试。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 11:10:39