记录维维的每一篇Hello World

2561180bd9ac836ccc7820333d32ce9.jpg

使用到的模板/库

  1. import urllib

如何实现

主要使用短信宝api接口实现,无实现难点,使用前需要前往短信宝官网https://smsbao.com,注册账号,根据自己的需求购买,购买后找到自己的username(账号),API Key(加密密码)。
image.png

注意

短信宝不适于发送私人消息,比如问候消息(你好,在干嘛等)。
image.png
image.png
image.png

完整源码

分别在sms_user,sms_apikey,填入刚刚获取的username,API Key才能正常使用(p是接收人,msg是发送内容)。

  1. # -*- coding : utf-8-*-
  2. # Project: send-smsbao
  3. # Created by 维维
  4. from urllib import parse
  5. from urllib import request
  6. def send_message(phone: str, message: str):
  7. sms_user = 'cnww88' # 短信宝账号
  8. sms_apikey = '45922ee63fcc41a3892ff44ef59496d1' # 短信宝的api Key
  9. sms_data = {
  10. 'u': sms_user,
  11. 'p': sms_apikey,
  12. 'm': phone,
  13. 'c': message
  14. }
  15. sms_url = 'https://api.smsbao.com/sms?' + parse.urlencode(sms_data) # 短信宝请求接口
  16. sms_response = request.urlopen(url=sms_url)
  17. sms_status = sms_response.read().decode('utf-8')
  18. # print(sms_status)
  19. sms_status_dict = {
  20. '0': '短信发送成功',
  21. '-1': '参数不全',
  22. '-2': '服务器空间不支持,请确认支持curl或者fsocket,联系您的空间商解决或者更换空间',
  23. '30': '密码错误',
  24. '40': '账号不存在',
  25. '41': '余额不足',
  26. '42': '账户已过期',
  27. '43': 'IP地址限制',
  28. '50': '内容含有敏感词'
  29. }
  30. try:
  31. return {'status': int(sms_status), 'c': sms_status_dict[sms_status]}
  32. except KeyError:
  33. return {'status': int(sms_status), 'c': '短信发送失败'}
  34. if __name__ == '__main__':
  35. p = '18144908451' # 接收短信的手机号
  36. msg = '您的短信验证码为6345,如不是本人操作,请忽略本条消息' # 发送的消息
  37. result = send_message(phone=p, message=msg)
  38. print(result['c'])

python环境

电脑:Windows10

python:3.8.8(建议3.7以上)