python自动化办公

编程入门 行业动态 更新时间:2024-10-17 05:37:37

<a href=https://www.elefans.com/category/jswz/34/1770869.html style=python自动化办公"/>

python自动化办公

python自动化办公

本节目标:python调用QQ邮箱API发送邮件。

本节内容:自动化定时发送邮件
本节技术点:smtplib,datetime

本节阅读需要(15)min。
本节实操需要(20)min。


文章目录

  • python自动化办公
  • 前言
  • 一、开启smtp服务
  • 二、使用smtplib发送邮件
    • smtplib简介
    • 第一封邮件
  • 总结


前言

大规模批量化的发送邮件一直是自动化办公的一个重要内容。升职加薪。冲冲冲!!!!
另外datetime库也是一个必须掌握的库。详细内容见


一、开启smtp服务

打开邮箱服务器。设置-》账户

找到这个然后开启。

需要短信验证,证明安全性。

然后会得到授权码,自己截图保存。

二、使用smtplib发送邮件

smtplib简介

# smtplib 用于邮件的发信动作
import smtplib
from email.mime.text import MIMEText
# email 用于构建邮件内容
from email.header import Header
# 用于构建邮件头 
# 发信方的信息:发信邮箱,QQ 邮箱授权码
from_addr = 'xxx@qq'# 收信方邮箱
to_addr = 'xxx@qq'# 发信服务器
smtp_server = 'smtp.qq' # QQ固定是这个# 邮箱正文内容,第一个参数为内容,第二个参数为格式(plain 为纯文本),第三个参数为编码
msg = MIMEText('send by python','plain','utf-8')# 邮件头信息
msg['From'] = Header(from_addr)
msg['To'] = Header(to_addr)
msg['Subject'] = Header('python test')# 开启发信服务,这里使用的是加密传输
server = smtplib.SMTP_SSL(smtp_server) # 实例化一个加密服务器
server.connect(smtp_server,465) # 启动加密端口,QQ加密的固定是这个
# 登录发信邮箱
server.login(from_addr, password)
# 发送邮件
server.sendmail(from_addr, to_addr, msg.as_string())
# 关闭服务器
server.quit()

第一封邮件

上面的模板测试了非常的好用。
只要不是填写垃圾信息,应该都是能收到的。

授权码不是密码,是截图保存的16位字符串。

其实按照上文是可以直接发一个标题,内容都很简单的邮件的。

但是我们发邮件一般需要有一个格式,不是一句话,而且需要附带图片或者附件。

所以我们在内容上还需要一些改进。我们要用到MIMEText之类的工具

MIME(Multipurpose Internet Mail Extensions)多用途互联网邮件扩展类型。是设定某种扩展名的文件用一种应用程序来打开的方式类型,当该扩展名文件被访问的时候,浏览器会自动使用指定应用程序来打开。多用于指定一些客户端自定义的文件名,以及一些媒体文件打开方式。
Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一


上代码!!!

from datetime import date,datetime
from fileinput import filename
import smtplib
# email 用于构建邮件内容
from email.header import Header
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from datetime import datetime
# 用于构建邮件头# 发信方的信息:发信邮箱,QQ 邮箱授权码
from_addr = 'xxxxxxx@qq'
shouquanma = 'xxxxxxxxx'# 收信方邮箱
to_addr = 'xxxxxxxxx@outlook'# 发信服务器
smtp_server = 'smtp.qq'
# 创建一个可以同时添加正文和附件的msg
msg1=MIMEMultipart()# 添加正文,&nbsp是空格
mail_msg='''
<p>&nbsp&nbsp亲爱的老铁</p>
<p>睡什么睡,起来嗨</p>
'''
#如果仅添加正文可以用此公式:msg=MIMEText(mail_msg,'html','utf-8')#表示添加正文内容msg1.attach(MIMEText(mail_msg,'html','utf-8'))# 添加附件,本质上是通过SMTP报文协议传送流文件
rarFilePath = '发送.txt'
att1=MIMEText(open(rarFilePath,'rb').read(),'base64','utf-8')#添加附件,由于定义了中文编码,所以文件可以带中文
### 只支持英文文件名
# att1["Content-Type"]='application/octet-stream'#数据传输类型的定义
# att1["Content-Disposition"]='attachment;filename=%s'%rarFilePath#定义文件在邮件中显示的文件名和后缀名,名字不可为中文,会乱码
# msg1.attach(att1)### 支持中文的
att1["Content-Type"] = 'application/octet-stream;name=%s'%Header(rarFilePath,'UTF-8')
att1.add_header('content-disposition','attachment',filename=rarFilePath)
msg1.attach(att1)
# 邮件头信息,属性是固定的
msg1['From'] = Header(from_addr)
msg1['To'] = Header(to_addr)
msg1['Subject'] = Header('hello world')
msg1['Date'] = datetime.ctime(datetime.now())# 开启发信服务,这里使用的是加密传输
server = smtplib.SMTP_SSL(smtp_server) # 实例化一个加密服务器
server.connect(smtp_server,465) # 启动加密端口
# 登录发信邮箱
server.login(from_addr, shouquanma)
# 发送邮件
# server.sendmail(from_addr, to_addr, msg.as_string()) # 发送纯文本server.send_message(msg1) # 发送邮件对象
# 关闭服务器
server.quit()

你们看看多么愉快啊


总结

本节讲解了如何发送邮件。

使用的到了smtplib,负责报文发送。网络层
email则负责内容的构建。应用层

下一节,我们讲讲,定时,和群发。

那就更刺激了!!!

更多推荐

python自动化办公

本文发布于:2024-03-23 01:37:45,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1738930.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:python

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!