Python开发系列课程(20) – 网络应用开发详解编程语言
2023-06-13 09:20:31 时间
发送电子邮件
在即时通信软件如此发达的今天,电子邮件仍然是互联网上使用最为广泛的应用之一,公司向应聘者发出录用通知、网站向用户发送一个激活账号的链接、银行向客户推广它们的理财产品等几乎都是通过电子邮件来完成的,而这些任务应该都是由程序自动完成的。
就像我们可以用HTTP(超文本传输协议)来访问一个网站一样,发送邮件要使用SMTP(简单邮件传输协议),SMTP也是一个建立在TCP(传输控制协议)提供的可靠数据传输服务的基础上的应用级协议,它规定了邮件的发送者如何跟发送邮件的服务器进行通信的细节,而Python中的smtplib模块将这些操作简化成了几个简单的函数。
下面的代码演示了如何在Python发送邮件。
from smtplib import SMTP from email.header import Header from email.mime.text import MIMEText
# 请自行修改下面的邮件发送者和接收者 sender = [email protected] receivers = [[email protected], [email protected]] 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(邮件发送完成!)如果要发送带有附件的邮件,那么可以按照下面的方式进行操作。
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 MIMEMultipart import urllib
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 = [email protected] receivers = [[email protected]] # 登录到SMTP服务器 # 请注意此处不是使用密码而是邮件客户端授权码进行登录 # 对此有疑问的读者可以联系自己使用的邮件服务器客服 smtper.login(sender, secretpass) # 发送邮件 smtper.sendmail(sender, receivers, message.as_string()) # 与邮件服务器断开连接 smtper.quit() print(发送完成!)发送短信也是项目中常见的功能,网站的注册码、验证码、营销信息基本上都是通过短信来发送给用户的。在下面的代码中我们使用了互亿无线短信平台(该平台为注册用户提供了50条免费短信以及常用开发语言发送短信的demo,可以登录该网站并在用户自服务页面中对短信进行配置)提供的API接口实现了发送短信的服务,当然国内的短信平台很多,读者可以根据自己的需要进行选择(通常会考虑费用预算、短信达到率、使用的难易程度等指标),如果需要在商业项目中使用短信服务建议购买短信平台提供的套餐服务。
import urllib.parse import http.client import json
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()
相关文章
- python运行代码不成功_Python | PyCharm无法直接运行(Run)脚本
- 【测试开发】python系列教程:Python 推导式
- Linux下Python脚本自启动和定时启动的详细步骤
- Python 中 Requests 库的用法详解编程语言
- python 判断文件、文件夹是否存在详解编程语言
- 希尔排序算法的python实现详解编程语言
- python开发的简单窗口界面的倒计时界面详解编程语言
- python 实现选择排序详解编程语言
- Python开发系列课程(13) – 文件和异常详解编程语言
- Python开发系列课程(12) – 图形用户界面和游戏开发详解编程语言
- Python开发系列课程(10) – 那些年我们踩过的那些坑(上)详解编程语言
- Python开发系列课程(8) – 字符串和常用数据结构详解编程语言
- Python开发系列课程(4) – 循环结构详解编程语言
- Python开发系列课程(2) – 语言元素详解编程语言
- Google开源了Abseil,为C++和Python开发提供支持详解编程语言
- python全栈开发-Day7 文件处理详解编程语言
- python_day24_面向对象进阶1_内置方法详解编程语言
- python_day01-作业详解编程语言
- python开发环境搭建详解编程语言
- python函数的万能参数详解编程语言
- python的json模块的dumps,loads,dump,load方法介绍详解编程语言
- Linux环境下安装Python(linux装python)