每日自动发邮件(Python +QQ邮箱 + Windows 10定时任务)

简介: 每日自动发邮件(Python +QQ邮箱 + Windows 10定时任务)

参考:


Python-100-Days/14.网络编程入门和网络应用开发.md at master · jackfrued/Python-100-Days · GitHub


什么是授权码,它又是如何设置?_QQ邮箱帮助中心


windows中怎么添加定时任务 - 秋寻草 - 博客园 (cnblogs.com)


一、申请授权码

登陆qq邮箱,设置,账户,(往下找)POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务,

开启服务:POP3/SMTP服务 。手机验证后得到16位授权码,复制下来后面要用。

详情见:什么是授权码,它又是如何设置?_QQ邮箱帮助中心

二、使用SMTP发送邮件

将下面程序的发件人、收件人、等修改,修改完成后运行即可发送邮件。

from smtplib import SMTP
from email.header import Header
from email.mime.text import MIMEText
 
 
def main():
    # 请自行修改下面的邮件发送者和接收者
    #【发送者邮箱】
    sender = 'abcdefg@126.com'
    #【接受者邮箱】
    receivers = ['uvwxyz@qq.com', 'uvwxyz@126.com']
    #【邮件内容】
    message = MIMEText('用Python发送邮件的示例代码.', 'plain', 'utf-8')
    #【发件人】
    message['From'] = Header('王大锤', 'utf-8')
    #【收件人】
    message['To'] = Header('骆昊', 'utf-8')
    #【邮件主题】
    message['Subject'] = Header('示例代码实验邮件', 'utf-8')
    smtper = SMTP('smtp.qq.com')
    #【将secretpass改成自己的16位授权码】
    smtper.login(sender, 'secretpass')
    smtper.sendmail(sender, receivers, message.as_string())
    print('邮件发送完成!')
 
 
if __name__ == '__main__':
    main()

三、在window中开启定时任务

1、Windows键+R,调出此窗口,输入compmgmt.msc

2、右键任务计划程序,选择创建基本任务。按提示填写,注意启动程序这里,程序写Python解释器路径,参数写上面的邮件脚本,起始于写脚本所在路径

四、带附件的 邮件

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
 
 
def main():
    # 创建一个带附件的邮件消息对象
    message = MIMEMultipart()
    
    # 创建文本内容
    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 = 'abcdefg@126.com'
    receivers = ['uvwxyz@qq.com']
    # 登录到SMTP服务器
    # 请注意此处不是使用密码而是邮件客户端授权码进行登录
    # 对此有疑问的读者可以联系自己使用的邮件服务器客服
    smtper.login(sender, 'secretpass')
    # 发送邮件
    smtper.sendmail(sender, receivers, message.as_string())
    # 与邮件服务器断开连接
    smtper.quit()
    print('发送完成!')
 
 
if __name__ == '__main__':
    main()
相关文章
|
10月前
|
存储 Java 调度
Python定时任务实战:APScheduler从入门到精通
APScheduler是Python强大的定时任务框架,通过触发器、执行器、任务存储和调度器四大组件,灵活实现各类周期性任务。支持内存、数据库、Redis等持久化存储,适用于Web集成、数据抓取、邮件发送等场景,解决传统sleep循环的诸多缺陷,助力构建稳定可靠的自动化系统。(238字)
1669 1
|
调度 索引 Python
python3创建定时任务
python3创建定时任务
274 2
|
计算机视觉 Windows Python
windows下使用python + opencv读取含有中文路径的图片 和 把图片数据保存到含有中文的路径下
在Windows系统中,直接使用`cv2.imread()`和`cv2.imwrite()`处理含中文路径的图像文件时会遇到问题。读取时会返回空数据,保存时则无法正确保存至目标目录。为解决这些问题,可以使用`cv2.imdecode()`结合`np.fromfile()`来读取图像,并使用`cv2.imencode()`结合`tofile()`方法来保存图像至含中文的路径。这种方法有效避免了路径编码问题,确保图像处理流程顺畅进行。
2658 1
|
数据采集 NoSQL 调度
flask celery python 每月定时任务
flask celery python 每月定时任务
|
Windows Python
python获取windows机子上运行的程序名称
python获取windows机子上运行的程序名称
|
Python Windows
python之windows脚本启动bat
python之windows脚本启动bat
|
Linux 开发者 Python
从Windows到Linux,Python系统调用如何让代码飞翔🚀
【9月更文挑战第10天】在编程领域,跨越不同操作系统的障碍是常见挑战。Python凭借其“编写一次,到处运行”的理念,显著简化了这一过程。通过os、subprocess、shutil等标准库模块,Python提供了统一的接口,自动处理底层差异,使代码在Windows和Linux上无缝运行。例如,`open`函数在不同系统中以相同方式操作文件,而`subprocess`模块则能一致地执行系统命令。此外,第三方库如psutil进一步增强了跨平台能力,使开发者能够轻松编写高效且易维护的代码。借助Python的强大系统调用功能,跨平台编程变得简单高效。
516 1
|
Python 容器
AutoDL Python实现 自动续签 防止实例过期释放 小脚本 定时任务 apscheduler requests
AutoDL Python实现 自动续签 防止实例过期释放 小脚本 定时任务 apscheduler requests
810 0
python之定时任务schedule
python之定时任务schedule
|
存储 开发者 C#
WPF与邮件发送:教你如何在Windows Presentation Foundation应用中无缝集成电子邮件功能——从界面设计到代码实现,全面解析邮件发送的每一个细节密武器!
【8月更文挑战第31天】本文探讨了如何在Windows Presentation Foundation(WPF)应用中集成电子邮件发送功能,详细介绍了从创建WPF项目到设计用户界面的全过程,并通过具体示例代码展示了如何使用`System.Net.Mail`命名空间中的`SmtpClient`和`MailMessage`类来实现邮件发送逻辑。文章还强调了安全性和错误处理的重要性,提供了实用的异常捕获代码片段,旨在帮助WPF开发者更好地掌握邮件发送技术,提升应用程序的功能性与用户体验。
501 0

推荐镜像

更多