首页 > 解决方案 > 某些运营商的电话号码没有收到来自我的 Python 代码的 SMS 消息?

问题描述

目标:使用python发送短信。

谷歌最终导致了 smtp 库,然后我的代码变成了:

import smtplib
import imaplib
import email

#emailAddress = "email@gmail.com"
#emailPassword = "appPassword"
#phoneAddress = "number@sms.rogers.com"
from config import emailAddress, emailPassword, phoneAddress

message = "testing test test"

smtpServer = "smtp.gmail.com"

server = smtplib.SMTP_SSL(smtpServer, 465)
server.ehlo()
server.login(emailAddress, emailPassword)

server.sendmail(emailAddress, phoneAddress, message)

server.quit()

当我将电话地址更改为有贝尔的人时,上面的代码有效。当是 Rogers 和 Fido 时,我可以在我的电子邮件帐户上看到已发送的消息,但 SMS 从未收到。shell中也没有弹出错误。

有谁知道为什么会这样?

标签: pythonsmssmtplibcarrier

解决方案


我使用 Fast2sms。它有一些免费限制,只需去他们的网站注册并创建一个授权码。注册并转到此链接以获取身份验证代码https://www.fast2sms.com/dashboard/dev-api

他们会要求积分发送短信到免打扰号码

import requests
url = "https://www.fast2sms.com/dev/bulk"
querystring = {"authorization":"Your Code here","sender_id":"FSTSMS","message":"Message content ","language":"english","route":"p","numbers":"8012XXXXX3"}
headers = {
    'cache-control': "no-cache"
}
response = requests.request("GET", url, headers=headers, params=querystring)
print(response.text)

推荐阅读