python 短信邮件
短信邮件
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 短信邮件的更多相关文章
- Android下调用收发短信邮件等
Android下调用收发短信邮件等 1,调web浏览器Uri myBlogUri = Uri.parse("http://xxxxx.com");returnIt = new In ...
- Python短信电话报警
sid 和token 需要自己去https://www.twilio.com/try-twilio注册twilio 账号申请是免费的 from后面的电话也是官方提供的 直接看脚本 # -*-cond ...
- python短信轰炸机版本smsbomb----------部分(post)
用一些用手机号注冊且须要发送验证码的站点的漏洞.能够向不论什么人的手机号发送短信,当然短信内容,我们无法控制.所以主要工作还是寻找这种站点.然后利用Fiddler或者HttpWatch分析请求.使用p ...
- 如何从应用直接跳转AppStore 电话 短信 邮件
//如何从应用直接跳转AppStore [[UIApplication sharedApplication]openURL:[NSURL URLWithString:@"应用程序的下载链接& ...
- python短信发送
'''以云之讯平台为例:''' url = 'https://open.ucpaas.com/ol/sms/sendsms' # 账户sidsid = 'f0ad70b276a8b63eb44f415 ...
- iOS打电话,发短信,发邮件,打开网址
//调用自带mail [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"mailto://admin@hzl ...
- Python twilio发短信实践
twilio注册地址 注册的时候可能会报错 最好是*** -->注册-->注册完毕后代码运行是不需要***的 https://www.twilio.com/console 需要pi ...
- Python基础—14-邮件与短信
邮件与短信 邮件发送 简介: 邮件服务器.账户.密码 相关协议:SMTP.POP3.IMAP 默认TCP协议端口:25 用途:经常用在一个网站的注册激活.通知.找回密码等场景 库:smtplib 示例 ...
- 发送短信——java
闲来无事研究一下调用第三方接口发送短信的技术 这一次我们使用阿里的短信服务 一.进行平台相关服务的注册和设置 下面请参照阿里的短信服务文档进行设置,只要按照文档步骤来差不多30分钟就能搞定服务注册: ...
随机推荐
- ORA-00600: internal error code, arguments: [kqludp2], [0x08D226918], [0], [], [], [], [], [], [], [], [], []
问题描述: 1)report builder + xml publisher 做的报表,报表提交后报黄色警告,输出文件是XML格式,日志提示如下: +--------- 1) POST-PROCESS ...
- leetcode-hard-array-76. Minimum Window Substring -NO
mycode 不会.. 参考: class Solution(object): def minWindow(self, s, t): """ :type s: str : ...
- mysql之索引 应用于事物 内连接、左(外)连接、右(外)连接
什么是索引 索引就像是一本书的目录一样,能够快速找到所需要的内容 索引的作用 加快查询速率,降低IO成本加快表与表之间的连接,减少分组和排序时间 索引类型 普通索引:没有唯一性的基本索引 唯一索引:有 ...
- Cortex-M3 异常中断响应与返回
[异常/中断响应]Cortex-M3的异常/中断响应序列包括: 入栈:把8个寄存器的值压入栈. 取向量:从向量表中找出对应的服务程序入口地址. 更新寄存器:更新堆栈指针SP,更新连接寄存器LR,更新程 ...
- js 中文字符串转base64
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- 淘宝TAE平台定时任务包的部署步骤
淘宝TAE平台定时任务包的部署: 第一步:首先把自己的任务打包成一个jar包.使用maven打包的命令为:mvn clean install 第二步:把任务jar包依赖的jar包全部导出来.使用mav ...
- 爬虫 selenium + phantomjs / chrome
selenium 模块 Web自动化测试工具, 可运行在浏览器,根据指定命令操作浏览器, 必须与第三方浏览器结合使用 安装 sudo pip3 install selenium phantomjs 浏 ...
- Angularjs E2E test Report/CoverageReport
前端Angularjs是一个很热门的框架,这篇是学习基于Angularjs的nodejs平台的E2E测试报告和E2E JS覆盖率报告.用到的都是现有的工具,只是一些配置的地方需要注意. 环境前提: 1 ...
- spring Ioc/DI的理解
学习spring的童鞋都知道,spring中有两个非常重要的点,Ioc(控制反转)与DI(依赖注入),对于初级玩家来说,这两个概念可能有点模棱两可的感觉,今天就谈下自己的一点理解,不足请多多指教!!! ...
- 'caching_sha2_password' cannot be loaded
Authentication plugin 'caching_sha2_password' cannot be loaded 下载新版(8+)mysql的时候,我使用的版本8.0.16,使用图形客户端 ...