Python自动发邮件,定制上班划水神器

作者: python草莓 | 来源:发表于2020-08-18 20:21 被阅读0次

如何用python自动发送各大平台热榜热内容到自己的邮箱。比如微博热搜、知乎热榜、步行街热帖、抖音热门、百度热点等等等等。。
进阶的还可以每天定时发送,或者定时更新一份本地的HTML文件,方便自己查看划水。

image.png

流程介绍

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 或小程序打开

相关文章

网友评论

    本文标题:Python自动发邮件,定制上班划水神器

    本文链接:https://www.haomeiwen.com/subject/qbpkjktx.html