短信邮件

 hashlib

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

- 示例:

```python
 import hashlib

# 创建hash对象,可以指定需要加密的字符串
md = hashlib.md5(''.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')

    # 发送请求(GET\POST)
    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 ''

    # 邮件消息
    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 = ''
t = ''
param = yzm + ',' + t

# 表单数据
form_data = {
'accountSid': accountSid,
'templateid': '',
'to': '',
'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'))

练习:

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

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

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

python 短信邮件的更多相关文章

  1. Android下调用收发短信邮件等

    Android下调用收发短信邮件等 1,调web浏览器Uri myBlogUri = Uri.parse("http://xxxxx.com");returnIt = new In ...

  2. Python短信电话报警

    sid 和token 需要自己去https://www.twilio.com/try-twilio注册twilio 账号申请是免费的  from后面的电话也是官方提供的 直接看脚本 # -*-cond ...

  3. python短信轰炸机版本smsbomb----------部分(post)

    用一些用手机号注冊且须要发送验证码的站点的漏洞.能够向不论什么人的手机号发送短信,当然短信内容,我们无法控制.所以主要工作还是寻找这种站点.然后利用Fiddler或者HttpWatch分析请求.使用p ...

  4. 如何从应用直接跳转AppStore 电话 短信 邮件

    //如何从应用直接跳转AppStore [[UIApplication sharedApplication]openURL:[NSURL URLWithString:@"应用程序的下载链接& ...

  5. python短信发送

    '''以云之讯平台为例:''' url = 'https://open.ucpaas.com/ol/sms/sendsms' # 账户sidsid = 'f0ad70b276a8b63eb44f415 ...

  6. iOS打电话,发短信,发邮件,打开网址

    //调用自带mail [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"mailto://admin@hzl ...

  7. Python twilio发短信实践

    twilio注册地址   注册的时候可能会报错   最好是*** -->注册-->注册完毕后代码运行是不需要***的 https://www.twilio.com/console 需要pi ...

  8. Python基础—14-邮件与短信

    邮件与短信 邮件发送 简介: 邮件服务器.账户.密码 相关协议:SMTP.POP3.IMAP 默认TCP协议端口:25 用途:经常用在一个网站的注册激活.通知.找回密码等场景 库:smtplib 示例 ...

  9. 发送短信——java

    闲来无事研究一下调用第三方接口发送短信的技术 这一次我们使用阿里的短信服务 一.进行平台相关服务的注册和设置 下面请参照阿里的短信服务文档进行设置,只要按照文档步骤来差不多30分钟就能搞定服务注册: ...

随机推荐

  1. ADS1.2与MDK4.7冲突问题的解决方法

    需要添加2个系统变量. 1.添加环境变量名: ARMCC5LIB 变量值:C:\Keil\ARM\ARMCC\lib(实际Keil安装目录) 2.添加环境变量:ARMCC5INC变量值:C:\Keil ...

  2. Linux 通道

    简单地说,一个通道接受一个工具软件的输出,然后把那个输出输入到其它工具软件.使用UNIX/Linux的词汇,这个通道接受了一个过程的标准输出,并把这个标准的输出作为另一个过程的标准输入.如果你没有重新 ...

  3. 机器学习之K-Mean聚类算法

    知识点: # coding = utf-8 import numpy as np import pandas as pd from sklearn.cluster import KMeans &quo ...

  4. linux添加用户所在群组

    etc目录下面有两个文件一个passwd一个grouppasswd里gid是主组,其他组是扩展组,扩展组在/etc/group里描述.useradd username如果不指定,默认创建一个与uid相 ...

  5. python 类中__getattr__的使用

    class F: def __init__(self, name): self.name = name def __getattr__(self, item): return '__getattr__ ...

  6. 《Neural Networks and Deep Learning》课程笔记

    Lesson 1 Neural Network and Deep Learning 这篇文章其实是 Coursera 上吴恩达老师的深度学习专业课程的第一门课程的课程笔记. 参考了其他人的笔记继续归纳 ...

  7. Java ——类型转换 向args传递参数

    本节重点思维导图  自动类型转换 整型.实型(常量).字符型数据可以混合运算 运算中,不同类型的数据先转化为同一类型,然后进行运算 转换从低级到高级 低 ----------------------- ...

  8. Java工程师研发面经大合集

    百度研发面经整合版 软件研发工程师 基础研发工程师 百度智能云 百度核心搜索部 百度今年的提前批有点奇怪,好像都不走流程,牛客上好几个百度内推的帖子,我投了几个,基本上都是百度智能云的,当然也有其他部 ...

  9. 论文翻译:LP-3DCNN: Unveiling Local Phase in 3D Convolutional Neural Networks

    引言 传统的3D卷积神经网络(CNN)计算成本高,内存密集,容易过度拟合,最重要的是,需要改进其特征学习能力.为了解决这些问题,我们提出了整流局部相位体积(ReLPV)模块,它是标准3D卷积层的有效替 ...

  10. 最大熵马尔科夫模型(MEMM)及其标签偏置问题

    定义: MEMM是这样的一个概率模型,即在给定的观察状态和前一状态的条件下,出现当前状态的概率. Ø  S表示状态的有限集合 Ø  O表示观察序列集合 Ø  Pr(s|s­­’,o):观察和状态转移概 ...