Python脚本——自动提醒发送邮件

本文介绍了一个使用Python脚本实现的自动发送周报邮件功能。通过结合yagmail库、PyQT5 UI界面和Linux的cronjob或Windows任务计划程序,实现了每周五晚上7点自动提醒并发送邮件。同时,文中还提到了在使用APScheduler库时遇到的UI响应问题。
摘要由CSDN通过智能技术生成

小组要求每周五下班前要发送周报,但是我每次都忘记,虽然Foxmail邮箱能设置提醒,但还是想自己写个脚本来实现相关功能。

主要功能:每周五晚上7点提醒我发送周报邮件。

主要思路:

  • 发送邮件
  • 弹框提醒
  • 定时执行脚本

1. 发送邮件

  最开始想到的当然是怎么用Python把邮件发送出去了,用的是yagmail库。首先安装yagmail库

pip install yagmail

以QQ邮箱为例:

import yagmail
# 登录你的邮箱
yag = yagmail.SMTP(user = 'xxxx@qq.com', password = 'xxx', host = 'smtp.qq.com') 
# 发送邮件
yag.send(to = ['123456@qq.com','22344@qq.com'], subject = '邮件的主题', contents = ['我要发送的内容', 'C://Users//Desktop//log.txt', 'C://Users//Desktop//music.txt'])

只需要三行代码即可发送邮件,分别看下登录邮箱和发送邮件的方法:

# 登录邮箱
yagmail.SMTP(user, password, host, port)

user:你的邮箱
password:授权码或密码,自行百度如何获取QQ邮箱授权码,我公司用的是Foxmail,所以这里我填的是我的邮箱密码
host:发件服务器,不同邮箱的服务器不同
port:服务器端口,QQ邮箱可不填
我用公司邮箱的时候还有一个坑:我填了以上4个参数后,提醒我STARTTLS extension not supported by server,原来是我公司的服务器不支持STARTTLS,所以在port参数后加上了smtp_starttls = False即可

# 发送邮件
yag.send(to, subject, contents, attachments, cc)

to:收件人,可以用列表的方式支持多个收件人,[‘123@qq.com’, ‘234@qq.com’]
subject:邮件主题
contents:邮件内容
attachments:附件,也可以跟我前面一样,将附件和内容写在一个列表里,也可以分开写。附件也支持用列表的方式表示多个附件。
cc:抄送

2. 弹框提醒
  这部分我是用pyqt5写了两个UI界面,一个是提醒框,一个是写邮件的界面。逻辑是到了指定的时间弹出提醒框
提醒框
提醒框的代码:

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QLabel, QInputDialog, QLineEdit, QTextEdit, QGridLayout, QHBoxLayout, QVBoxLayout, QFileDialog, QMessageBox
from
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值