Python基础—14-邮件与短信
2021-06-21 11:04
标签:cdc 字符串 href form XML send pass from ken 简介: 用途:经常用在一个网站的注册激活、通知、找回密码等场景 库: 示例: 总结: http.client json与xml urllib.parse 说明:注册验证码、通知消息、营销短信、... 平台:阿里、秒嘀、云之讯、... 认识:云之讯(www.ucpaas.com) 代码示例: 友情提示:出现错误,去查看返回状态码,并进行解决。 秒嘀平台简介 Python基础—14-邮件与短信 标签:cdc 字符串 href form XML send pass from ken 原文地址:https://www.cnblogs.com/swjblog/p/9677782.html邮件与短信
邮件发送
smtplib
import os
import smtplib
# 用于邮件发送的类
from email.mime.text import MIMEText
# 邮箱服务器
mail_server = ‘smtp.163.com‘
# 用户名
mail_user = ‘xxx@163.com‘
# 密码或授权码
# 为了密码不对外公开,可以通过环境变量进行获取
mail_pwd = os.getenv(‘MAIL_PASSWORD‘, ‘123456‘)
# 消息内容
content = ‘请点击右边链接完成激活,激活‘
# 创建消息对象,并设置内容,
# 第二个用于指定文本内容类型,若不指定默认是文本
message = MIMEText(content, ‘html‘)
# 设置主题
message[‘Subject‘] = ‘账户激活‘
# 设置发送者
message[‘From‘] = mail_user
# 创建邮件发送类
mail = smtplib.SMTP(mail_server, 25)
# 身份认证
mail.login(mail_user, mail_pwd)
# 指定接收者,多个接收者使用列表
to = ‘xxx@qq.com‘
# 发送邮件
mail.sendmail(mail_user, to, message.as_string())
# 结束
mail.quit()
MIMEText
smtplib.SMTP
预备知识
import http.client
# 创建连接(相当于浏览器)
connect = http.client.HTTPConnection(‘www.baidu.com‘)
# 发出请求
connect.request(method=‘GET‘, url=‘http://www.baidu.com‘)
# 获取响应
resp = connect.getresponse()
# 打印
print(resp.read().decode(‘utf-8‘))
import json
d = {‘name‘: ‘xiaoming‘, ‘age‘: ‘20‘}
# 将字典对象转换为JSON格式的字符串
s = json.dumps(d)
print(s)
print(type(s))
# 将JSON格式的字符串转换为字典对象
d2 = json.loads(s)
print(d2)
print(type(d2))
from urllib.parse import urlencode, urlparse, parse_qs
d = {‘name‘: ‘xiaoming‘, ‘age‘: ‘20‘}
# 将字典数据进行url编码:name=xiaoming&age=20
print(urlencode(d))
url = ‘http://www.baidu.com/abc/def?page=2&id=5&like=sport&like=music‘
# 解析url
p = urlparse(url)
print(p.query)
# 将url请求字符串转换为字典
d2 = parse_qs(p.query)
print(d2)
短信发送
# 账户sid
account_sid = ‘b5c6fd1d02071a766009475f0478e0ac‘
# auth token
auth_token = ‘2426bff7df8ff95f59fcbcdce3362c58‘
# 应用标识
app_id = ‘fac78e7f7f0647c7a47c4809ff564f5c‘
# 短信模板标识
template_id = ‘291768‘
# 模板参数,多个使用逗号隔开
param = ‘name‘
# 电话
mobile = ‘xxx‘
# 数据字典
form_data = {
"sid": account_sid,
"token": auth_token,
"appid": app_id,
"templateid": template_id,
"param": param,
"mobile": mobile
}
# 将字典转换JSON字符串
import json
form_data = json.dumps(form_data)
# 创建‘浏览器‘对象
import http.client
connect = http.client.HTTPConnection(‘open.ucpaas.com‘)
# 准备请求头
headers = {
‘Accept‘: ‘application/json‘,
‘Content-Type‘: ‘application/json;charset=utf-8‘
}
# 请求地址
url = ‘https://open.ucpaas.com/ol/sms/sendsms‘
# 发送请求
connect.request(method=‘POST‘, url=url, body=form_data, headers=headers)
# 获取响应
resp = connect.getresponse()
# 打印响应
print(resp.read().decode(‘utf-8‘))