自动化定时发送天气提醒邮件

🎈 博主:一只程序猿子

🎈 博客主页:一只程序猿子 博客主页

🎈 个人介绍:爱好(bushi)编程!

🎈 创作不易:如喜欢麻烦您点个👍或者点个⭐

🎈 欢迎访问我的主页(点我直达)

🎈 除此之外您还可以通过个人名片联系我 👉👉👉👉👉👉

                              

如果您很喜欢我的文章且富有,我说:公主 or 王子 请打赏!!!

额滴名片儿
求打赏🥺

目录

1.前言

2.技术介绍

(1)任务计划程序

(2)Windows批处理程序

(3)天气爬虫程序

(4)自动发邮件程序

3.源码

(1)发送邮件的Python源码:

(2)编写run.bat批处理程序: 

4.创建定时任务

(1)右键单击左下角Windows图标-计算机管理

(2) 创建任务

(3)自定义触发条件:

(4)编辑操作

5.运行测试

(1)运行python程序测试

(2)运行批处理程序测试

(3)定时任务程序运行


1.前言

        本文将介绍使用Windows系统自带的任务计划程序,定时运行一个自动发送天气提醒邮件批处理程序!这个批处理程序中将调用我们提前编写好的Python程序,包含天气信息爬虫程序和自动化发送邮件的程序。

2.技术介绍

(1)任务计划程序

Windows的任务计划程序是一个内置的系统工具,可以帮助用户在Windows操作系统中创建、安排和管理任务。通过任务计划程序,用户可以设定任务的触发条件、执行时间、操作内容等,实现定时启动程序、定时关机、定时备份文件等操作。

任务计划程序可以通过多种方式找到并打开。在Windows的开始菜单中,可以找到“管理工具”或“任务计划程序”选项。另外,用户也可以通过计算机管理、服务器管理器等途径找到任务计划程序。

创建任务计划程序的过程包括以下步骤:

  1. 打开任务计划程序并创建一个新的任务;
  2. 为任务指定名称和描述;
  3. 选择任务的触发条件,比如每天、每周或每月等;
  4. 设置任务的执行时间;
  5. 选择要执行的操作,比如启动程序、关闭计算机等;
  6. 配置任务的其他选项,比如触发器、条件等;
  7. 完成任务的创建并保存。

使用任务计划程序可以方便地实现定时任务的自动化管理,对于需要定时执行任务的Windows用户来说是一个非常实用的工具。

(2)Windows批处理程序

.bat文件是可执行文件,由一系列命令构成,其中可以包含对其他程序的调用。这个文件的每一行都是一条DOS命令,可以使用DOS下的Edit或者Windows的记事本(notepad)等任何文本文件编辑工具创建和修改批处理文件。

批处理(Batch),也称为批处理脚本。顾名思义,批处理就是对某对象进行批量的处理,通常被认为是一种简化的脚本语言,它应用于DOS和Windows系统中。批处理文件的扩展名为bat 或cmd。比较常见的批处理包含两类:DOS批处理和PS批处理。PS批处理是基于强大的图片编辑软件Photoshop的,用来批量处理图片的脚本;而DOS批处理则是基于DOS命令的,用来自动地批量地执行DOS命令以实现特定操作的脚本。

更复杂的情况,需要使用if、for、goto等命令控制程序的运行过程,如同C、Basic等高级语言一样。如果需要实现更复杂的应用,利用外部程序是必要的,这包括系统本身提供的外部命令和第三方提供的工具或者软件。

批处理程序虽然是在命令行环境中运行,但不仅仅能使用命令行软件,任何当前系统下可运行的程序都可以放在批处理文件中运行。

(3)天气爬虫程序

在此之前我已经介绍了如何实现爬取天气信息,具体可以参考以下文章:

Python爬虫-爬取天气信息(1)_天气爬虫_一只程序猿子的博客-CSDN博客

Python爬虫-爬取天气信息(2)_天气爬虫_一只程序猿子的博客-CSDN博客

Python爬虫-爬取天气信息(3)_天气爬虫_一只程序猿子的博客-CSDN博客

(4)自动发邮件程序

在此之前我已经介绍了如何实现爬取Python自动化发送邮件,具体可以参考以下文章:

Python实现发邮件_python 自动发送邮件_一只程序猿子的博客-CSDN博客

3.源码

(1)发送邮件的Python源码:

import smtplib
from email.mime.text import MIMEText
from email.header import Header
import base64
from spider.dingzhi_weather_spader import GetDingZhiWeather
from spider.sk_weather_spider import GetSkWeather

# 发件人邮箱
sender = '填写发件人邮箱'
# 发件人邮箱密码(注意不是QQ密码,是授权码)
password = '填写发件人邮箱授权码'
# 收件人邮箱,可以是多个邮箱,使用列表存储
receiver = ['xxx@qq.com']    # 记得换成收件人的邮箱

#获取天气
dingzhi_weather = GetDingZhiWeather.get_dingzhi_weather(101220901)
shikuang_weather = GetSkWeather.get_sk_weather(101220901)


data = f'''
********************实况天气********************
{shikuang_weather}
********************今日天气********************
{dingzhi_weather}
********************播报完成********************
'''
print(data)

# 邮件主题
subject = '天气提醒'
info = data

# 发件人昵称,如果昵称包含非ASCII字符,如中文,则请使用base64对昵称进行编码。
nickname = "天气提示助手"
encoded_nickname = str(base64.b64encode(nickname.encode('utf-8'))).replace("b'", "").replace("'", "")

message = MIMEText(info, 'plain', 'utf-8')  # 邮件正文
# message['From'] = Header(f'abc <{sender}>')  # 发件人昵称(昵称全为ASCII字符)
message['From'] = Header(f'"=?UTF-8?B?{encoded_nickname}?=" <{sender}>')  # 发件人昵称(昵称包含非ASCII字符,如中文)
message['To'] = Header(receiver[0])    # 收件人昵称
message['Subject'] = Header(subject, 'utf-8')   # 邮件主题

# SSL协议端口号要使用465
smtp_ssl_server = 'smtp.qq.com'
smtp_ssl_port = 465

try:
    # 登录SMTP服务器,发送邮件
    smtpObj = smtplib.SMTP_SSL(smtp_ssl_server, smtp_ssl_port)
    smtpObj.login(sender, password)
    smtpObj.sendmail(sender, receiver, message.as_string())
    print(f"发送给 {receiver} 的邮件发送成功!")
except smtplib.SMTPException as e:
    print("邮件发送失败!", e)

(2)编写run.bat批处理程序: 

:: 关闭命令回显,即不显示命令本身,只在执行时显示命令结果。
@echo off    

:: 切换当前目录到"E:\PycharmProject\SendEmailDemo",这里的"cd"是改变当前工作目录的命令,"PycharmProject\SendEmailDemo"是要切换到的目录
E: cd PycharmProject\SendEmailDemo  。  

:: 设置环境变量PYTHONPATH,使其包含当前工作目录的路径,并用分号隔开。PYTHONPATH通常用于指定Python解释器搜索模块的路径。
set PYTHONPATH=E:\PycharmProject\SendEmailDemo;%PYTHONPATH%    

:: 使用Python解释器来执行"E:\PycharmProject\SendEmailDemo\sendemail\sendemail.py"这个Python脚本。
E:\PycharmProject\SendEmailDemo\venv\Scripts\python.exe E:\PycharmProject\SendEmailDemo\sendemail\sendemail.py   

:: 退出程序
exit

 

4.创建定时任务

(1)右键单击左下角Windows图标-计算机管理

(2) 创建任务

(3)自定义触发条件:

(4)编辑操作

        在操作里就是启动run.bat批处理程序 

 

5.运行测试

(1)运行python程序测试

(2)运行批处理程序测试

        为了方便截图,这里我将批处理程序里最后一行换成pause,目的是暂停批处理程序的执行,直到用户按下任意键才会继续。如果使用exit则运行完毕直接关闭窗口了!

(3)定时任务程序运行

        手机上也收到了邮件提示:        

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/222672.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

智能安全芯片ACH512芯片描述及功能

ACH512 芯片是一款基于安全算法的高性能 SOC 芯片&#xff0c; 主要应用于 eMMC/SD/Nandflash 大容量存储设备、加密 U 盘、指纹识别等市场。 芯片采用 32 位内核&#xff0c;片内集成多种安全密码模块&#xff0c;包括SM1、 SM2、 SM3、 SM4、 SSF33 算法以及RSA/ECC、 ECDSA、…

4WRPH6C3B24L-2X/G24Z4/M伺服比例方向阀控制板

4WRPH6C3B12L-2X/G24Z4/M、4WRPH6C3B40P-2X/G24Z4/M、4WRPH6C3B40L-2X/G24Z4/M、4WRPH6C4B24L-2X/G24Z4/M、4WRPH6C4B40L-2X/G24Z4/M、4WRPH6C3B24L-2X/G24Z4/M、4WRPH10C4B100L-2X/G24Z4/M、4WRPH10C3B100L-2X/G24K0/M-750适合控制4WRPH系列比例伺服阀&#xff0c;用于安装在架…

rt-thread主线程启动流程

rt-thread主线程启动流程 1.启动分析2.源码分析 1.启动分析 基于&#xff1a;rt-thread-v5.0.1 先执行&#xff1a;汇编代码startup_stm32f429xx.s开始运行&#xff0c;主要调用SystemInit和 __main ; Reset handler Reset_Handler PROCEXPORT Reset_Handler …

功率信号源工作原理是什么

功率信号源是一种专门产生大功率信号的设备&#xff0c;主要用于驱动高功率负载&#xff0c;如电机、变频器等。其工作原理涉及信号生成、放大和输出三个关键步骤。 首先&#xff0c;信号生成。功率信号源通常会采用各种信号发生器来产生不同类型的信号波形。这些信号可以是正弦…

DenseNet分类网络改进(添加SPP)--亲测有效

最近&#xff0c;我在做多分类问题。在针对基模型的选择中&#xff0c;我使用了DenseNet作为基本模型。我在阅读论文时&#xff0c;遇到了一种改进方式&#xff1a; 如上图所示&#xff0c;在全连接层之前引入SPP模块&#xff1a; 代码如下&#xff1a; SPP模块代码&#x…

6 大 Android 照片恢复软件深度评测

当您发现令人难忘的照片在 Android 上被错误删除或丢失时&#xff0c;您可能会感到非常沮丧。然而&#xff0c;当您尝试安装一些恢复应用程序并希望将它们重新恢复时&#xff0c;其中许多应用程序无法再次检测到丢失的照片。 为了节省您逐一尝试此类应用程序的时间&#xff0c…

yum命令详解和使用

目录 一、yum介绍 常见的软件封包类型 RPM的含义 二、 yum命令格式 三、常用命令 3.1 yum清空缓存列表 3.2 yum显示信息 3.2 yum安装 3.3 yum删除 3.4 yum包的更新和升级 四、常用的国内 yum 源 一、yum介绍 Yum(全称为 Yellow dog Updater, Modified)&#xff0c;是…

西工大计算机学院计算机系统基础实验一(环境配置)

首先&#xff0c;不要焦虑&#xff0c;稳住心态慢慢来&#xff0c;一点一点做&#xff0c;跟着作者把基础打好&#xff0c;比什么都重要。作者曾经经历过这份痛苦&#xff0c;知道它有多么不好受。当初的作者高中之前甚至都没有自己的一台笔记本&#xff0c;上了大学以后学C语言…

unity旋转选中效果

代码和预制体 函数PlayAnim&#xff08;&#xff09;中的角度要根据按钮数量手动填好 using System; using DG.Tweening; using DG.Tweening.Core; using DG.Tweening.Plugins.Options; using UnityEngine;// Token: 0x0200001B RID: 27 public class BtnParentScript : Base…

数字化智慧工地管理云平台源码(人工智能、物联网)

​智慧工地优势&#xff1a;"智慧工地”将施工企业现场视频管理、建筑起重机械安全监控、现场从业人员管理、物料管理、进度管理、扬尘噪声监测等现场设备有机、高效、科学、规范的结合起来真正实现工程项目业务流与现场各类监控源数据流的有效结合与深度配合&#xff0c;…

html通过CDN引入使用Vue和ElementUI

html通过CDN引入使用Vue和ElementUI 近期遇到个需求&#xff0c;就是需要在.net MVC的项目中&#xff0c;对已有的项目的首页进行优化&#xff0c;也就是写原生html和js。但是咱是一个写前端的&#xff0c;写html还可以&#xff0c;.net的话&#xff0c;开发也不方便&#xff0…

MybatisPlus中的使用Wrapper自定义SQL

一、条件构造器 条件构造器提供了一种更加简洁和直观的方式来构建复杂的查询条件。它提供了一组静态方法&#xff0c;用于构建各种类型的查询条件&#xff0c;包括等于、不等于、大于、小于、包含等。使用条件构造器可以避免手动拼接SQL语句的麻烦&#xff0c;提高代码的可读性…

Pandas使用过程中的神器加持 你不用不要怪我

Pandas是我们日常处理表格数据最常用的包&#xff0c;但是对于数据分析来说&#xff0c;Pandas的DataFrame还不够直观&#xff0c;所以今天我们将介绍4个和Pandas相关的Python包&#xff0c;可以将Pandas的DataFrame转换交互式表格&#xff0c;让我们可以直接在上面进行数据分析…

mybatis-plus的用法。如果条件不为空则查询。返回结果类型转换

1.如果条件不为空则查询 偶尔看到这个代码。感觉大可不必 点击进入源码就会发现。 内部已经封装好了条件判断&#xff0c;可以说非常的人性化 而且改条件走的非常深 2.返回结果类型转换 page查询的时候&#xff0c;返回的结果只能是表对应的实体类。如果自定义扩展vo,dto需…

“城中村上建高楼”,开启一场数智化时代新修炼

“数字化也好&#xff0c;数智化也罢&#xff0c;你明明白白地告诉我&#xff0c;他们与信息化到底有什么区别&#xff1f;” “我在信息化方面已投入那么多&#xff0c;为什么又要投那么多钱搞数智化&#xff1f;” 中国软件网、海比研究院在《2024中国企业数智服务趋势洞察研…

Kubernetes(K8s)安全认证-10

安全认证 访问控制概述 Kubernetes作为一个分布式集群的管理工具&#xff0c;保证集群的安全性是其一个重要的任务。所谓的安全性其实就是保证对Kubernetes的各种客户端进行认证和鉴权操作。 客户端 在Kubernetes集群中&#xff0c;客户端通常有两类&#xff1a; User Acco…

【AI-Fix】解决地图展示包leafmap在Jupyter NoteBook中地图不显示的问题

1. 问题描述 新创建的环境想使用leafmap在Jupyter中进行地图展示&#xff0c;结果发现运行完成之后不显示&#xff0c;不论怎么重启都没有办法显示出来&#xff0c;以经验来看&#xff0c;多半是缺了包了。 于是去leafmap的官方文档查找原因&#xff0c;一开始并没有发现什么问…

用OpenCV与MFC写一个图像格式转换及简单处理程序

打开不同格式的图形文件&#xff0c;彩色装灰度图像、锐化、高斯滤波、边界检测及将其存储为需求格式是图像处理的最基本的操作。如果单纯用MFC编程&#xff0c;是一个令人头痛的事情&#xff0c;有不少的代码量。可用OpenCV与MFC编程就变得相对简单。下面来详细演示这一编程操…

Altair推出 Altair RapidMiner 2023 平台,提供生成式 AI 功能

Altair推出 Altair RapidMiner 2023 平台&#xff0c;提供生成式 AI 功能 更新包括自动聚类、扩展 SAS、Python 和 R 编程功能等 近日&#xff0c;Altair&#xff08;纳斯达克股票代码&#xff1a;ALTR&#xff09;近日宣布其数据分析和 AI 平台 Altair RapidMiner 取得了一系…

Python文件打包成exe可执行文件

我们平常用python写些脚本可以方便我们的学习办公&#xff0c;但限制就是需要有python环境才能运行。 那能不能直接在没有python环境的电脑上运行我们的脚本呢&#xff1f; 当然可以&#xff0c;那就是直接把python脚本打包成exe可执行程序&#xff08;注针对win系统&#xf…