Python开发系列课程(20) - 网络应用开发
网络应用开发
发送电子邮件
在即时通信软件如此发达的今天,电子邮件仍然是互联网上使用最为广泛的应用之一,公司向应聘者发出录用通知、网站向用户发送一个激活账号的链接、银行向客户推广它们的理财产品等几乎都是通过电子邮件来完成的,而这些任务应该都是由程序自动完成的。
就像我们可以用HTTP(超文本传输协议)来访问一个网站一样,发送邮件要使用SMTP(简单邮件传输协议),SMTP也是一个建立在TCP(传输控制协议)提供的可靠数据传输服务的基础上的应用级协议,它规定了邮件的发送者如何跟发送邮件的服务器进行通信的细节,而Python中的smtplib模块将这些操作简化成了几个简单的函数。
下面的代码演示了如何在Python发送邮件。
如果要发送带有附件的邮件,那么可以按照下面的方式进行操作。
发送短信
发送短信也是项目中常见的功能,网站的注册码、验证码、营销信息基本上都是通过短信来发送给用户的。在下面的代码中我们使用了短信平台(该平台为注册用户提供了50条免费短信以及常用开发语言发送短信的demo,可以登录该网站并在用户自服务页面中对短信进行配置)提供的API接口实现了发送短信的服务,当然国内的短信平台很多,读者可以根据自己的需要进行选择(通常会考虑费用预算、短信达到率、使用的难易程度等指标),如果需要在商业项目中使用短信服务建议购买短信平台提供的套餐服务。
import urllib.parse import http.client import json def 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()