zoukankan      html  css  js  c++  java
  • python 短信邮件

    短信邮件

     hashlib

    - md5:非对称加密,不可逆的,经常用于加密密码然后存储

    - 示例:

    ```python
     import hashlib
    ​
      # 创建hash对象,可以指定需要加密的字符串
      md = hashlib.md5('123456'.encode('utf-8'))
    ​
      # 设置加密字符串,创建md5对象就不必指定了,不能两个地方都指定
      # md.update('123456'.encode('utf-8'))
    # 获取加密后的字符串(32位)
      print(md.hexdigest())

    urllib

    • 说明:

      • URI:统一资源标识符

      • URL:统一资源定位符,URI的一种形式,如:http://www.baidu.com:80?name=xiaoming&age=10

    • 示例:

      
      
      from urllib.parse import urlencode
      ​
      d = {'name':'dahua', 'age':18}
      ​
      print(d)
      # 转换为:name=dahua&age=18
      print(urlencode(d))
      ​
      from urllib.parse import urlparse
      ​
      url = 'http://www.baidu.com:80/abc/def?page=3&size=5&like=1&like=2'# 解析出url中所有的参数
      p = urlparse(url)
      print(p)
      ​
      # 请求参数
      print(p.query)
      ​
      from urllib.parse import parse_qs
      ​
      # 将url请求参数转换为字典
      ​
      d = parse_qs(p.query)
      print(d)
      ​

    http.client

    • 说明:可以模拟浏览器发送http请求(是爬虫的基础)

    • 示例:

      
      
      import http.client
      ​
      # 创建连接(相当于浏览器)
      connect = http.client.HTTPConnection('www.baidu.com')
      ​
      # 发送请求(GETPOST)
      connect.request(method='GET', url='http://www.baidu.com')
      ​
      # 获取响应
      resp = connect.getresponse()
      ​
      # 打印响应内容,读取并解码
      print(resp.read().decode('gbk'))

    邮件发送

    • 说明:在一个网站中经常使用邮件操作,如:激活、通知、等

    • smtp使用

      
      
      import smtplib
      # 将字符串转换为邮件的文本格式
      from email.mime.text import MIMEText
      ​
      # 邮箱服务器
      mail_server = 'smtp.1000phone.com'# 用户名
      mail_user = 'lijie@1000phone.com'# 密码或授权码,为了不将密码公开,可以通过环境变量的方式获取
      import os
      mail_password = os.environ.get('MAIL_PASSWORD') or '123456'# 邮件消息
      message = '你好,欢迎注册xxx平台,激活请点击右边链接 <a href="http://www.baidu.com">点击激活</a>'
      # 将邮件字符串消息转换邮件格式,若内容是HTML需要指定第二个参数为'html'
      message = MIMEText(message, 'html')
      ​
      # 设置主题
      message['Subject'] = '账户激活'
      # 设置发送人
      message['From'] = mail_user
      ​
      # 创建邮件对象
      mail = smtplib.SMTP(mail_server, 25)
      # 登录服务器
      mail.login(mail_user, mail_password)

    接受者,多个使用逗号隔开

    to = '956673351@qq.com'

    发送邮件

    mail.sendmail(mail_user, to, message.as_string())

    结束

    mail.quit()



    ### 短信发送

    - 说明:注册验证码、通知消息、营销短信、...

    - 平台:阿里、云之讯、秒嘀、...

    - 示例:秒嘀(miaodiyun.com)

    ```python
    # 请求地址
      url = 'https://api.miaodiyun.com/20150822/industrySMS/sendSMS'# 请求头
      headers = {'Content-type': 'application/x-www-form-urlencoded'}
    ​
      # 账户sid
      accountSid = '1e3808d2bf77467ba838001351c05a07'# auth token
      auth_token = 'a6181ae71b78455b8b4ca6d5c6bd793a'# 时间戳
      import time
      timestamp = time.strftime('%Y%m%d%H%M%S')
    ​
      sig = accountSid + auth_token + timestamp
      # md5加密一下
      import hashlib
      md = hashlib.md5()
      md.update(sig.encode('utf-8'))
    ​
      sig = md.hexdigest()
    ​
      # 模板参数
      yzm = '632881'
      t = '5'
      param = yzm + ',' + t
    ​
      # 表单数据
      form_data = {
          'accountSid': accountSid,
          'templateid': '192310431',
          'to': '13017629070',
          'timestamp': timestamp,
          'sig': sig,
          'param': param,
      }
    ​
      # 将字典转换为url参数形式
      from urllib.parse import urlencode
      form_data = urlencode(form_data)
    ​
      # 创建浏览器对象
      import http.client
      connect = http.client.HTTPConnection('api.miaodiyun.com')
    ​
      # 发送POST请求
      connect.request(method='POST', url=url, body=form_data, headers=headers)
    ​
      # 获取响应
      resp = connect.getresponse()
    ​
      # 打印响应结果
      print(resp.read().decode('utf-8'))

    练习:

    • 实现邮件发送函数的封装

    • 找到一个其他平台,试着发送短信

    • 封装一个函数,专门用于短信发送,传递相关参数,返回验证码

  • 相关阅读:
    POJ 1251 Jungle Roads
    1111 Online Map (30 分)
    1122 Hamiltonian Cycle (25 分)
    POJ 2560 Freckles
    1087 All Roads Lead to Rome (30 分)
    1072 Gas Station (30 分)
    1018 Public Bike Management (30 分)
    1030 Travel Plan (30 分)
    22. bootstrap组件#巨幕和旋转图标
    3. Spring配置文件
  • 原文地址:https://www.cnblogs.com/kiki5881/p/8560599.html
Copyright © 2011-2022 走看看