Python基础教程:Day14b-网络应用开发
发送电子邮件
在即时通信软件如此发达的今天,电子邮件仍然是互联网上使用最为广泛的应用之一,公司向应聘者发出录用通知、网站向用户发送一个激活账号的链接、银行向客户推广它们的理财产品等几乎都是通过电子邮件来完成的,而这些任务应该都是由程序自动完成的。
就像我们可以用HTTP(超文本传输协议)来访问一个网站一样,发送邮件要使用SMTP(简单邮件传输协议),SMTP也是一个建立在TCP(传输控制协议)提供的可靠数据传输服务的基础上的应用级协议,它规定了邮件的发送者如何跟发送邮件的服务器进行通信的细节,而Python中的smtplib模块将这些操作简化成了几个简单的函数。
下面的代码演示了如何在Python发送邮件。
from smtplib import SMTP
from email.header import Header
from email.mime.text import MIMETextdef main():# 请自行修改下面的邮件发送者和接收者sender = 'abcdefg@126.com'receivers = ['uvwxyz@qq.com', 'uvwxyz@126.com']message = MIMEText('用Python发送邮件的示例代码.', 'plain', 'utf-8')message['From'] = Header('王大锤', 'utf-8')message['To'] = Header('骆昊', 'utf-8')message['Subject'] = Header('示例代码实验邮件', 'utf-8')smtper = SMTP('smtp.126.com')# 请自行修改下面的登录口令smtper.login(sender, 'secretpass')smtper.sendmail(sender, receivers, message.as_string())print('邮件发送完成!')if __name__ == '__main__':main()复制代码
如果要发送带有附件的邮件,那么可以按照下面的方式进行操作。
from smtplib import SMTP
from email.header import Header
from email.mime.text import MIMEText
from email.mime.image import MIMEImage
from email.mime.multipart import MIMEMultipartimport urllibdef main():# 创建一个带附件的邮件消息对象message = MIMEMultipart()# 创建文本内容text_content = MIMEText('附件中有本月数据请查收', 'plain', 'utf-8')message['Subject'] = Header('本月数据', 'utf-8')# 将文本内容添加到邮件消息对象中message.attach(text_content)# 读取文件并将文件作为附件添加到邮件消息对象中with open('/Users/Hao/Desktop/hello.txt', 'rb') as f:txt = MIMEText(f.read(), 'base64', 'utf-8')txt['Content-Type'] = 'text/plain'txt['Content-Disposition'] = 'attachment; filename=hello.txt'message.attach(txt)# 读取文件并将文件作为附件添加到邮件消息对象中with open('/Users/Hao/Desktop/汇总数据.xlsx', 'rb') as f:xls = MIMEText(f.read(), 'base64', 'utf-8')xls['Content-Type'] = 'application/vnd.ms-excel'xls['Content-Disposition'] = 'attachment; filename=month-data.xlsx'message.attach(xls)# 创建SMTP对象smtper = SMTP('smtp.126.com')# 开启安全连接# smtper.starttls()sender = 'abcdefg@126.com'receivers = ['uvwxyz@qq.com']# 登录到SMTP服务器# 请注意此处不是使用密码而是邮件客户端授权码进行登录# 对此有疑问的读者可以联系自己使用的邮件服务器客服smtper.login(sender, 'secretpass')# 发送邮件smtper.sendmail(sender, receivers, message.as_string())# 与邮件服务器断开连接smtper.quit()print('发送完成!')if __name__ == '__main__':main()复制代码
发送短信
发送短信也是项目中常见的功能,网站的注册码、验证码、营销信息基本上都是通过短信来发送给用户的。在下面的代码中我们使用了互亿无线短信平台(该平台为注册用户提供了50条免费短信以及常用开发语言发送短信的demo,可以登录该网站并在用户自服务页面中对短信进行配置)提供的API接口实现了发送短信的服务,当然国内的短信平台很多,读者可以根据自己的需要进行选择(通常会考虑费用预算、短信达到率、使用的难易程度等指标),如果需要在商业项目中使用短信服务建议购买短信平台提供的套餐服务。
import urllib.parse
import http.client
import jsondef main():host = "106.ihuyi.com"sms_send_uri = "/webservice/sms.php?method=Submit"# 下面的参数需要填入自己注册的账号和对应的密码params = urllib.parse.urlencode({'account': '你自己的账号', 'password' : '你自己的密码', 'content': '您的验证码是:147258。请不要把验证码泄露给其他人。', 'mobile': '接收者的手机号', 'format':'json' })print(params)headers = {'Content-type': 'application/x-www-form-urlencoded', 'Accept': 'text/plain'}conn = http.client.HTTPConnection(host, port=80, timeout=30)conn.request('POST', sms_send_uri, params, headers)response = conn.getresponse()response_str = response.read()jsonstr = response_str.decode('utf-8')print(json.loads(jsonstr))conn.close()if __name__ == '__main__':main()复制代码
Python基础教程:Day14b-网络应用开发相关推荐
- 什么是python基础教程-python基础教程之python是什么?概念解析
Python,是一种面向对象的解释型计算机程序设计语言,由荷兰人Guido van Rossum于1989年发明,第一个公开发行版发行于1991年. Python是纯粹的自由软件, 源代码和解释器CP ...
- python基础教程(第3版) pdf,python手册中文版第四版
求<Python学习手册>(第四版)中文版pdf,万分感谢! <[3]学习视频>百度网盘资源免费下载链接提取码:m6tm[3]学习视频|python视频教程|Python入门基 ...
- python基础教程目录-Python基础教程(第2版 修订版) 简介,目录书摘
编辑推荐: <Python基础教程(第2版·修订版)>是经典的Python入门教程,层次鲜明,结构严谨,内容翔实,特别是最后几章,作者将前面讲述的内容应用到10个引人入胜的项目中,并以模板 ...
- python基础教程第二版和第三版哪个好-python基础教程 2版和3版哪个适合新手?!...
python基础教程 2版和3版哪个适合新手? 现在学是学python3. 两者的差异发者本身影响并不大,个别语法细微的差比如python3的print数方式使用,一些常用模块的名称差异,一些机制的差 ...
- python基础教程第三版电子版百度云-《python基础教程第三版》高清版PDF免费下载...
下载地址1:http://t.cn/EGxO1sW Python基础教程 第3版Python简明教程书籍 Python编程从入门到实践 灵程序设计丛书 <python基础教程第三版>高清版 ...
- python基础教程视频(全13集)-Python基础视频教程(600集)【传智播客精品教程】...
Python基础视频教程 初级共600节课 本套视频是传智播客紧抓未来最大趋势--人工智能,应运而生的一套Python入门视频教程,Python是学习人工智能的首选语言,而该视频是专门针对零基础的学员 ...
- python基础教程第三版和第二版选哪个-python基础教程 2版和3版哪个适合新手?!...
python基础教程 2版和3版哪个适合新手? 现在学是学python3. 两者的差异发者本身影响并不大,个别语法细微的差比如python3的print数方式使用,一些常用模块的名称差异,一些机制的差 ...
- python基础教程第三版豆瓣-1024,程序媛/猿请查收!
点击上方蓝字关注我们 节专享福利:1024程序员 本期活动,不仅有赠书福利,且有购书福利,图灵公司联合当当网特意为{印象python}读者们申请了一波购书福利.感兴趣的读者朋友,请下拉至文末,领取福利 ...
- python基础教程书籍推荐-Python大神推荐给小白的36本入门书籍
Python大神推荐给小白的36本入门书籍 如果看我喜欢可以找我领取Python电子书和学习资料 1.Python编程:从入门到实践 我自己最初看的这本书,觉得非常适合入门 2.python入门经典- ...
最新文章
- 时间序列预测---差分自回归移动平均模型(ARIMA模型)
- mutable、volatile的使用
- 前端:收集前端开发者手边必备的11款神器
- 大话数据结构学习笔记二:算法
- MD5和SHA1加密
- Android IntentService使用
- matlab m语言电路仿真,基于Matlab的TFT-LCD解码电路的仿真设计(含程序)
- Gerrit搭建与代码下载
- 数据库与表的操作之编辑表结构(ALTER TABLE)
- 百度地图 android SDKv2.2.0
- linux上的MySQL默认端口,linux下mysql 查看默认端口号与修改端口号方法
- Step7 MicroWin V4.0 SP9在Win10系统中的安装方法
- BeetlSQL 注解
- MongoDB Ubuntu安装 APP 支付宝微信支付
- 如何判断某个物体当前是顺时针还是逆时针旋转
- LinkedBlockingQueue 实现生产者消费者模型
- OpenGL字体绘制
- MySQL 部署PXC集群
- 在线引流工具Tcpcopy原理、使用、采坑
- js 获取vue组件html_vue项目中,index.html数据与组件之间通信,传值,以获取MAC地址为例...