Python自动发邮件,定制上班划水神器
2020-08-18 本文已影响0人
python草莓
如何用python自动发送各大平台热榜热内容到自己的邮箱。比如微博热搜、知乎热榜、步行街热帖、抖音热门、百度热点等等等等。。
进阶的还可以每天定时发送,或者定时更新一份本地的HTML文件,方便自己查看划水。
流程介绍
1)获取目标内容,比如本文选取的微博热搜Top10,知乎热榜Top10,步行街热帖Top10。然后将要获取的目标内容以html格式保存起来
2)使用python中的smtplib和email模块进行邮件的发送,这里的教程代码主要介绍这一块。
发送邮件步骤
1)导入相应的第三方库
import pandas as pd
import smtplib
import email
# 负责构造文本
from email.mime.text import MIMEText
# 负责将多个对象集合起来
from email.mime.multipart import MIMEMultipart
from email.header import Header
2)设置邮箱域名、发件人邮箱、邮箱授权码、收件人邮箱
mail_host = "smtp.163.com"
# 发件人邮箱
mail_sender = "发件人邮箱@163.com"
# 邮箱授权码,注意这里不是邮箱密码,获取方式:https://jingyan.baidu.com/article/495ba841ecc72c38b30ede38.html
mail_license = "到邮箱的设置中开启smtp获取"
# 收件人邮箱,可以为多个收件人
mail_receivers = ["收件邮箱@****.com"]
mm = MIMEMultipart('related')
3)设置邮件主题内容
# 邮件主题
subject_content = """Python邮件测试"""
# 设置发送者,注意严格遵守格式,里面邮箱为发件人邮箱
mm["From"] = "sender_name<*****@qq.com>"
# 设置接受者,注意严格遵守格式,里面邮箱为接受者邮箱
mm["To"] = "receiver_1_name<***@****.com>"
# 设置邮件主题
mm["Subject"] = Header(subject_content,'utf-8')
4)插入正文内容,3个html文件
with open('hupu.html','rb') as f:
content = f.read()
part1 = MIMEText(content,'html','utf-8')
mm.attach(part1)
with open('zhihu.html','rb') as f:
content = f.read()
part2 = MIMEText(content,'html','utf-8')
mm.attach(part2)
with open('weibo.html','rb') as f:
content = f.read()
part3 = MIMEText(content,'html','utf-8')
mm.attach(part3)
想要输出成一个表格,并不需要自己去学习前端代码,dataframe中有非常简单的方法可以直接生成html表格文件,具体的方法如下:
image.png
使用的方法是to_html(),其中render_links=True是将链接内容设置成可点击。
df_zhihu[['知乎热榜','热度','链接']].to_html('zhihu.html', render_links=True, encoding='utf-8')
输出html文本是这样的:文件可以在文末
image.png image.png
# 创建SMTP对象
stp = smtplib.SMTP()
# 设置发件人邮箱的域名和端口,端口地址为25
stp.connect(mail_host, 25)
# set_debuglevel(1)可以打印出和SMTP服务器交互的所有信息
stp.set_debuglevel(1)
# 登录邮箱,传递参数1:邮箱地址,参数2:邮箱授权码
stp.login(mail_sender,mail_license)
# 发送邮件,传递参数1:发件人邮箱地址,参数2:收件人邮箱地址,参数3:把邮件内容格式改为str
stp.sendmail(mail_sender, mail_receivers, mm.as_string())
print("邮件发送成功")
# 关闭SMTP对象
stp.quit()
完整的代码和html文件可以私信我获取
https://shimo.im/docs/QvG8JqxGKvcrXQhH/ 《python基础到进阶学习资料》,可复制链接后用石墨文档 App 或小程序打开