<h1 id="邮件与短信" data-source-line="1">邮件与短信
<h3 id="邮件发送" data-source-line="3">邮件发送
<ul data-source-line="5">
简介:
- 邮件服务器、账户、密码
- 相关协议:SMTP、POP3、IMAP
- 默认TCP协议端口:25
库:smtplib
示例:
mail_server = <span style="color: #800000">'<span style="color: #800000">smtp.163.com<span style="color: #800000">'
<span style="color: #008000">#
<span style="color: #008000"> 用户名mail_user = <span style="color: #800000">'<span style="color: #800000">xxx@163.com<span style="color: #800000">'
<span style="color: #008000">#<span style="color: #008000"> 密码或授权码<span style="color: #008000">
<span style="color: #008000"> 为了密码不对外公开,可以通过环境变量进行获取
mail_pwd = os.getenv(<span style="color: #800000">'<span style="color: #800000">MAIL_PASSWORD<span style="color: #800000">',<span style="color: #800000">'<span style="color: #800000">123456<span style="color: #800000">'<span style="color: #000000">)
<span style="color: #008000">#<span style="color: #008000"> 消息内容
content = <span style="color: #800000">'<span style="color: #800000">请点击右边链接完成激活,激活<span style="color: #800000">'
<span style="color: #008000">#<span style="color: #008000"> 创建消息对象,并设置内容,<span style="color: #008000">
<span style="color: #008000"> 第二个用于指定文本内容类型,若不指定默认是文本
message = MIMEText(content,<span style="color: #800000">'<span style="color: #800000">html<span style="color: #800000">'<span style="color: #000000">)
<span style="color: #008000">#<span style="color: #008000"> 设置主题
message[<span style="color: #800000">'<span style="color: #800000">Subject<span style="color: #800000">'] = <span style="color: #800000">'<span style="color: #800000">账户激活<span style="color: #800000">'
<span style="color: #008000">#<span style="color: #008000"> 设置发送者
message[<span style="color: #800000">'<span style="color: #800000">From<span style="color: #800000">'] =<span style="color: #000000"> mail_user
<span style="color: #008000">#<span style="color: #008000"> 创建邮件发送类
mail = smtplib.SMTP(mail_server,25<span style="color: #000000">)
<span style="color: #008000">#<span style="color: #008000"> 身份认证
<span style="color: #000000">mail.login(mail_user,mail_pwd)
<span style="color: #008000">#<span style="color: #008000"> 指定接收者,多个接收者使用列表
to = <span style="color: #800000">'<span style="color: #800000">xxx@qq.com<span style="color: #800000">'
<span style="color: #008000">#<span style="color: #008000"> 发送邮件
<span style="color: #000000">mail.sendmail(mail_user,to,message.as_string())
<span style="color: #008000">#<span style="color: #008000"> 结束
mail.quit()
http.client
<span style="color: #008000">#<span style="color: #008000"> 创建连接(相当于浏览器)
connect = http.client.HTTPConnection(<span style="color: #800000">'<span style="color: #800000">www.baidu.com<span style="color: #800000">'<span style="color: #000000">)
<span style="color: #008000">#<span style="color: #008000"> 发出请求
connect.request(method=<span style="color: #800000">'<span style="color: #800000">GET<span style="color: #800000">',url=<span style="color: #800000">'<span style="color: #800000">http://www.baidu.com<span style="color: #800000">'<span style="color: #000000">)
<span style="color: #008000">#<span style="color: #008000"> 获取响应
resp =<span style="color: #000000"> connect.getresponse()
<span style="color: #008000">#<span style="color: #008000"> 打印
<span style="color: #0000ff">print(resp.read().decode(<span style="color: #800000">'<span style="color: #800000">utf-8<span style="color: #800000">'))
-
json与xml
- 说明:是使用非常广泛的两种数据传输格式,之前xml居多,现在json居多。
- json使用
d = {<span style="color: #800000">'<span style="color: #800000">name<span style="color: #800000">': <span style="color: #800000">'<span style="color: #800000">xiaoming<span style="color: #800000">',<span style="color: #800000">'<span style="color: #800000">age<span style="color: #800000">': <span style="color: #800000">'<span style="color: #800000">20<span style="color: #800000">'<span style="color: #000000">}
<span style="color: #008000">#<span style="color: #008000"> 将字典对象转换为JSON格式的字符串
s =<span style="color: #000000"> json.dumps(d)
<span style="color: #0000ff">print<span style="color: #000000">(s)
<span style="color: #0000ff">print<span style="color: #000000">(type(s))
<span style="color: #008000">#<span style="color: #008000"> 将JSON格式的字符串转换为字典对象
d2 =<span style="color: #000000"> json.loads(s)
<span style="color: #0000ff">print<span style="color: #000000">(d2)
<span style="color: #0000ff">print(type(d2))
-
urllib.parse
urllib.parse d = {<span style="color: #800000">'<span style="color: #800000">name<span style="color: #800000">': <span style="color: #800000">'<span style="color: #800000">xiaoming<span style="color: #800000">',<span style="color: #800000">'<span style="color: #800000">age<span style="color: #800000">': <span style="color: #800000">'<span style="color: #800000">20<span style="color: #800000">'<span style="color: #000000">}
<span style="color: #008000">#<span style="color: #008000"> 将字典数据进行url编码:name=xiaoming&age=20
<span style="color: #0000ff">print<span style="color: #000000">(urlencode(d))
url = <span style="color: #800000">'<span style="color: #800000">http://www.baidu.com/abc/def?page=2&id=5&like=sport&like=music<span style="color: #800000">'
<span style="color: #008000">#<span style="color: #008000"> 解析url
p =<span style="color: #000000"> urlparse(url)
<span style="color: #0000ff">print<span style="color: #000000">(p.query)
<span style="color: #008000">#<span style="color: #008000"> 将url请求字符串转换为字典
d2 =<span style="color: #000000"> parse_qs(p.query)
<span style="color: #0000ff">print(d2)
-
平台:阿里、秒嘀、云之讯、...
-
认识:云之讯()
-
代码示例:
account_sid =
<span style="color: #008000">#
<span style="color: #008000"> auth token
auth_token = <span style="color: #800000">'<span style="color: #800000">2426bff7df8ff95f59fcbcdce3362c58<span style="color: #800000">'
<span style="color: #008000">#<span style="color: #008000"> 应用标识
app_id = <span style="color: #800000">'<span style="color: #800000">fac78e7f7f0647c7a47c4809ff564f5c<span style="color: #800000">'
<span style="color: #008000">#<span style="color: #008000"> 短信模板标识
template_id = <span style="color: #800000">'<span style="color: #800000">291768<span style="color: #800000">'
<span style="color: #008000">#<span style="color: #008000"> 模板参数,多个使用逗号隔开
param = <span style="color: #800000">'<span style="color: #800000">name<span style="color: #800000">'
<span style="color: #008000">#<span style="color: #008000"> 电话
mobile = <span style="color: #800000">'<span style="color: #800000">xxx<span style="color: #800000">'
<span style="color: #008000">#<span style="color: #008000"> 数据字典
form_data =<span style="color: #000000"> {
<span style="color: #800000">"<span style="color: #800000">sid<span style="color: #800000">"<span style="color: #000000">: account_sid,<span style="color: #800000">"<span style="color: #800000">token<span style="color: #800000">"<span style="color: #000000">: auth_token,<span style="color: #800000">"<span style="color: #800000">appid<span style="color: #800000">"<span style="color: #000000">: app_id,<span style="color: #800000">"<span style="color: #800000">templateid<span style="color: #800000">"<span style="color: #000000">: template_id,<span style="color: #800000">"<span style="color: #800000">param<span style="color: #800000">"<span style="color: #000000">: param,<span style="color: #800000">"<span style="color: #800000">mobile<span style="color: #800000">"<span style="color: #000000">: mobile
}
<span style="color: #008000">#<span style="color: #008000"> 将字典转换JSON字符串
<span style="color: #0000ff">import<span style="color: #000000"> json
form_data =<span style="color: #000000"> json.dumps(form_data)
<span style="color: #008000">#<span style="color: #008000"> 创建'浏览器'对象
<span style="color: #0000ff">import<span style="color: #000000"> http.client
connect = http.client.HTTPConnection(<span style="color: #800000">'<span style="color: #800000">open.ucpaas.com<span style="color: #800000">'<span style="color: #000000">)
<span style="color: #008000">#<span style="color: #008000"> 准备请求头
headers =<span style="color: #000000"> {
<span style="color: #800000">'<span style="color: #800000">Accept<span style="color: #800000">': <span style="color: #800000">'<span style="color: #800000">application/json<span style="color: #800000">'<span style="color: #000000">,<span style="color: #800000">'<span style="color: #800000">Content-Type<span style="color: #800000">': <span style="color: #800000">'<span style="color: #800000">application/json;charset=utf-8<span style="color: #800000">'<span style="color: #000000">
}
<span style="color: #008000">#<span style="color: #008000"> 请求地址
url = <span style="color: #800000">'<span style="color: #800000">https://open.ucpaas.com/ol/sms/sendsms<span style="color: #800000">'
<span style="color: #008000">#<span style="color: #008000"> 发送请求
connect.request(method=<span style="color: #800000">'<span style="color: #800000">POST<span style="color: #800000">',url=url,body=form_data,headers=<span style="color: #000000">headers)
<span style="color: #008000">#<span style="color: #008000"> 获取响应
resp =<span style="color: #000000"> connect.getresponse()
<span style="color: #008000">#<span style="color: #008000"> 打印响应
<span style="color: #0000ff">print(resp.read().decode(<span style="color: #800000">'<span style="color: #800000">utf-8<span style="color: #800000">'))
-
-
秒嘀平台简介
http.client
connect = http.client.HTTPConnection(<span style="color: #800000">'<span style="color: #800000">www.baidu.com<span style="color: #800000">'<span style="color: #000000">)
<span style="color: #008000">#<span style="color: #008000"> 发出请求
connect.request(method=<span style="color: #800000">'<span style="color: #800000">GET<span style="color: #800000">',url=<span style="color: #800000">'<span style="color: #800000">http://www.baidu.com<span style="color: #800000">'<span style="color: #000000">)
<span style="color: #008000">#<span style="color: #008000"> 获取响应
resp =<span style="color: #000000"> connect.getresponse()
<span style="color: #008000">#<span style="color: #008000"> 打印
<span style="color: #0000ff">print(resp.read().decode(<span style="color: #800000">'<span style="color: #800000">utf-8<span style="color: #800000">'))
json与xml
- 说明:是使用非常广泛的两种数据传输格式,之前xml居多,现在json居多。
- json使用
<span style="color: #008000">#<span style="color: #008000"> 将字典对象转换为JSON格式的字符串
s =<span style="color: #000000"> json.dumps(d)
<span style="color: #0000ff">print<span style="color: #000000">(s)
<span style="color: #0000ff">print<span style="color: #000000">(type(s))
<span style="color: #008000">#<span style="color: #008000"> 将JSON格式的字符串转换为字典对象
d2 =<span style="color: #000000"> json.loads(s)
<span style="color: #0000ff">print<span style="color: #000000">(d2)
<span style="color: #0000ff">print(type(d2))
urllib.parse
<span style="color: #008000">#<span style="color: #008000"> 将字典数据进行url编码:name=xiaoming&age=20
<span style="color: #0000ff">print<span style="color: #000000">(urlencode(d))
url = <span style="color: #800000">'<span style="color: #800000">http://www.baidu.com/abc/def?page=2&id=5&like=sport&like=music<span style="color: #800000">'
<span style="color: #008000">#<span style="color: #008000"> 解析url
p =<span style="color: #000000"> urlparse(url)
<span style="color: #0000ff">print<span style="color: #000000">(p.query)
<span style="color: #008000">#<span style="color: #008000"> 将url请求字符串转换为字典
d2 =<span style="color: #000000"> parse_qs(p.query)
<span style="color: #0000ff">print(d2)
-
平台:阿里、秒嘀、云之讯、...
-
认识:云之讯()
-
代码示例:
account_sid =<span style="color: #008000">#
<span style="color: #008000"> auth token
auth_token = <span style="color: #800000">'<span style="color: #800000">2426bff7df8ff95f59fcbcdce3362c58<span style="color: #800000">'<span style="color: #008000">#<span style="color: #008000"> 应用标识
app_id = <span style="color: #800000">'<span style="color: #800000">fac78e7f7f0647c7a47c4809ff564f5c<span style="color: #800000">'<span style="color: #008000">#<span style="color: #008000"> 短信模板标识
template_id = <span style="color: #800000">'<span style="color: #800000">291768<span style="color: #800000">'<span style="color: #008000">#<span style="color: #008000"> 模板参数,多个使用逗号隔开
param = <span style="color: #800000">'<span style="color: #800000">name<span style="color: #800000">'<span style="color: #008000">#<span style="color: #008000"> 电话
mobile = <span style="color: #800000">'<span style="color: #800000">xxx<span style="color: #800000">'<span style="color: #008000">#<span style="color: #008000"> 数据字典
form_data =<span style="color: #000000"> {
<span style="color: #800000">"<span style="color: #800000">sid<span style="color: #800000">"<span style="color: #000000">: account_sid,<span style="color: #800000">"<span style="color: #800000">token<span style="color: #800000">"<span style="color: #000000">: auth_token,<span style="color: #800000">"<span style="color: #800000">appid<span style="color: #800000">"<span style="color: #000000">: app_id,<span style="color: #800000">"<span style="color: #800000">templateid<span style="color: #800000">"<span style="color: #000000">: template_id,<span style="color: #800000">"<span style="color: #800000">param<span style="color: #800000">"<span style="color: #000000">: param,<span style="color: #800000">"<span style="color: #800000">mobile<span style="color: #800000">"<span style="color: #000000">: mobile
}<span style="color: #008000">#<span style="color: #008000"> 将字典转换JSON字符串
<span style="color: #0000ff">import<span style="color: #000000"> json
form_data =<span style="color: #000000"> json.dumps(form_data)<span style="color: #008000">#<span style="color: #008000"> 创建'浏览器'对象
<span style="color: #0000ff">import<span style="color: #000000"> http.client
connect = http.client.HTTPConnection(<span style="color: #800000">'<span style="color: #800000">open.ucpaas.com<span style="color: #800000">'<span style="color: #000000">)<span style="color: #008000">#<span style="color: #008000"> 准备请求头
headers =<span style="color: #000000"> {
<span style="color: #800000">'<span style="color: #800000">Accept<span style="color: #800000">': <span style="color: #800000">'<span style="color: #800000">application/json<span style="color: #800000">'<span style="color: #000000">,<span style="color: #800000">'<span style="color: #800000">Content-Type<span style="color: #800000">': <span style="color: #800000">'<span style="color: #800000">application/json;charset=utf-8<span style="color: #800000">'<span style="color: #000000">
}
<span style="color: #008000">#<span style="color: #008000"> 请求地址
url = <span style="color: #800000">'<span style="color: #800000">https://open.ucpaas.com/ol/sms/sendsms<span style="color: #800000">'<span style="color: #008000">#<span style="color: #008000"> 发送请求
connect.request(method=<span style="color: #800000">'<span style="color: #800000">POST<span style="color: #800000">',url=url,body=form_data,headers=<span style="color: #000000">headers)<span style="color: #008000">#<span style="color: #008000"> 获取响应
resp =<span style="color: #000000"> connect.getresponse()<span style="color: #008000">#<span style="color: #008000"> 打印响应
<span style="color: #0000ff">print(resp.read().decode(<span style="color: #800000">'<span style="color: #800000">utf-8<span style="color: #800000">')) -
秒嘀平台简介