无Mac场景下如何通过Python读取iPhone个人号码接收的短信
可行实现方案
以下方案均支持Windows/Linux系统,不需要Mac设备,可直接实现个人手机号接收短信的Python读取处理:
- 安卓设备+ADB直连(零成本优先选)
准备一台插有个人SIM卡的闲置安卓手机即可,不需要root,不需要额外付费。
操作逻辑:- 手机端打开开发者选项,开启USB调试,用USB线连接电脑,完成调试授权。
- 电脑端安装ADB工具,终端执行
adb devices能看到设备序列号即为连接成功。 - 直接通过ADB命令读取系统短信收件箱内容,Python通过子进程调用ADB命令拿到结果后解析即可,不需要对接第三方服务。
简单轮询读取示例代码:
import subprocess import time processed_ids = set() def fetch_new_sms(): cmd = [ 'adb', 'shell', 'content', 'query', '--uri', 'content://sms/inbox', '--projection', '_id,address,body,date', '--sort', 'date DESC', '--limit', '20' ] res = subprocess.run(cmd, capture_output=True, text=True, encoding='utf-8') new_sms = [] for line in res.stdout.strip().split('\n'): if not line: continue sms_data = {} for seg in line.split(', '): key, val = seg.split('=', 1) sms_data[key] = val if sms_data['_id'] not in processed_ids: processed_ids.add(sms_data['_id']) new_sms.append(sms_data) return new_sms if __name__ == '__main__': while True: sms_list = fetch_new_sms() for sms in sms_list: # 此处插入自定义业务处理逻辑 print(f"发件人:{sms['address']},短信内容:{sms['body']}") time.sleep(2)
高版本安卓如果限制ADB直接读取短信,可以在手机端安装轻量本地短信转发工具,收到新短信后通过局域网HTTP请求推送到电脑端的Python服务,稳定性更高。
- USB短信猫硬件对接(无闲置安卓机可选)
几十元即可买到USB接口的GSM短信猫,把个人SIM卡插入设备后,Python通过串口发送AT指令就能直接读取短信,全平台支持。
操作逻辑:- 电脑端安装短信猫对应的串口驱动,插入设备后确认串口号(Windows下在设备管理器看,Linux下一般为
/dev/ttyUSB0)。 - 安装Python串口依赖
pip install pyserial,通过AT指令设置短信为文本模式,轮询读取未读短信即可。
核心代码片段:
- 电脑端安装短信猫对应的串口驱动,插入设备后确认串口号(Windows下在设备管理器看,Linux下一般为
import serial import time # 波特率根据设备参数调整,常见为9600/115200 ser = serial.Serial('COM3', 9600, timeout=1) ser.write(b'AT+CMGF=1\r\n') time.sleep(0.5) def get_unread_sms(): ser.write(b'AT+CMGL="REC UNREAD"\r\n') time.sleep(1) raw = ser.read(ser.in_waiting).decode('gbk') # 按AT指令返回格式解析出发件人、时间、正文即可 print(raw)
注意购买支持国内运营商频段的设备,部分老款短信猫不支持4G/5G网络,会出现收不到短信的问题。
- 运营商官方开放接口对接(无硬件需求可选)
三大运营商均面向个人用户开放了短信同步能力,开通后收到的短信会自动推送到你配置的HTTP回调地址,Python写一个简单的Web服务接收回调数据就能处理,不需要额外硬件。
不同省份运营商的开通流程、接口规范有差异,开通时注意确认个人身份即可,不需要企业资质。
避坑提示:Twilio、腾讯云短信这类公共云短信服务均使用平台分配的专属号码,无法直接绑定个人已有手机号,不符合需求不用测试;不要使用要求上传SIM卡信息、云端复制SIM卡的第三方服务,存在验证码泄露、短信被盗刷的安全风险。
内容的提问来源于stack exchange,提问作者add-itya
相关产品推荐
相关产品推荐

