Python基础—14-邮件与短信
邮件与短信
邮件发送
-
简介:
- 邮件服务器、账户、密码
- 相关协议:SMTP、POP3、IMAP
- 默认TCP协议端口:25
-
用途:经常用在一个网站的注册激活、通知、找回密码等场景
-
库:
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
- 使用邮件发送对象发送消息对象
预备知识
-
http.client
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\'))
-
json与xml
- 说明:是使用非常广泛的两种数据传输格式,之前xml居多,现在json居多。
- json使用
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))
-
urllib.parse
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)
短信发送
-
说明:注册验证码、通知消息、营销短信、…
-
平台:阿里、秒嘀、云之讯、…
-
认识:云之讯(www.ucpaas.com)
-
代码示例:
# 账户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\'))
-
友情提示:出现错误,去查看返回状态码,并进行解决。
-
秒嘀平台简介
版权声明:本文为swjblog原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。