【Python实战】轻松实现自动发送邮件

news2024/9/20 1:23:58

本文收录于 《一起学Python趣味编程》专栏,从零基础开始,分享一些Python编程知识,欢迎关注,谢谢!

文章目录

    • 一、前言
    • 二、开发准备
    • 三、正式开始
    • 四、总结

一、前言

本文介绍如何使用Python开源项目“PythonSendMail”,快速实现自动发送带Excel报表附件的邮件。只需要进行简单的配置,即可实现自动发送带Excel附件的邮件。另外,实现Excel文档附件内容从数据库中动态获取。

  • 开源项目地址

    https://gitee.com/kenny071218/PythonSendMail.git

  • 该项目发送出来的邮件是什么样的?

    在这里插入图片描述

  • 开源项目简介

    ##简介
    该项目使用Python实现自动发送带Excel报表附件的邮件
    
    ##实现逻辑
    使用Linux自带的crontab定时器,定时执行shell脚本,shell脚本中再调用Python脚本,实现自动发送带Excel文档格式报表附件的邮件。
    主要包括两个脚本。其中,一个脚本用来生成Excel邮件附件文档数据,另外一个脚本用来发送邮件;
    
    ##运行环境要求
    Python 3.6
    
    ##安装用到模块
    pip install pymysql
    pip install openpyxl
    
    ##crontab配置示例
    #1、定时器先生成Excel附件
    01 08 * * * /data/python36/PythonSendMail/script/excel_gen_demo.sh
    #2、定时器再发送邮件
    05 08 * * * /data/python36/PythonSendMail/script/mail_send_demo.sh
    
    
    
    
  • Python内置邮件发送模块smtplib介绍

smtplib 是 Python 内置的一个模块,用于发送邮件。

官方开发手册:https://docs.python.org/zh-cn/3/library/smtplib.html

下面是一个使用 smtplib 发送简单文本邮件的示例:

import smtplib
from email

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

操作系统篇--八股文学习第十天| 进程和线程之间有什么区别;并行和并发有什么区别;解释一下用户态和核心态,什么场景下,会发生内核态和用户态的切换?

进程和线程之间有什么区别 答: 进程是资源调度和分配的基本单位。 线程是程序执行的最小单位,线程是进程的子任务,是进程内的执行单元。 一个进程至少有一个线程,一个进程可以运行多个线程,这些线程共享同一块内存…

oracle rac-> rac配置adg避坑注意点

例如源主库db_name为aaa db_unique_name为aaa,实例名为aaa1,aaa2 ORACLE_SID为aaa1,aaa2 tnsnames.ora的服务名配置:aaa/dgaaa 则备库设置参考:db_name相同为aaa,db_unique_name不同为dgaaa,实例名为dgaaa1,dgaaa2…

【LeetCode】56. 区间合并

区间合并 题目描述: 以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] [starti, endi] 。请你合并所有重叠的区间,并返回 一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间 。 示例 1: …

Oracle的一些脚本工具总结

一、操作系统性能 在linux 6 之后,建议使用dstat监控操作系统的各项指标。 使用方法: yum install dstat dstat -cdlrgmnpsy 二、we.sql https://download.csdn.net/download/zengxiangbo/89601165 详见文章关联附件。 Oracle脚本工具,查…

企业安全生产管理是否将成为新的朝阳产业?

这个答案我可以肯定的告诉你,是的! 首先朝阳产业是啥?朝阳产业指的是具有广阔发展前景、高成长性和创新性的产业。 但你也有可能不信我说的这句。因为在大多数人看来,安全生产管理这块儿,企业的关注度不多&#xff0…

Oracle Database 确认表空间大小的方法

Oracle Database 确认表空间大小的方法 sql: WITH object_size AS (SELECT segment_name,owner,segment_type,tablespace_name,SUM(bytes) total_bytesFROM dba_segmentsGROUP BY segment_name, owner, segment_type, tablespace_name ), table_size AS (SELECT segment_name …

【探索Linux】P.43(网络层 —— IP协议)

阅读导航 引言一、IP协议基本概念二、IP协议头格式三、网段划分1. 网络号和主机号2. 引入子网掩码(1)基本概念(2)默认子网掩码(3)子网掩码的作用(4)子网掩码与IP地址的结合&#xff…

探索Python代码质量的守护神:Flake8

文章目录 探索Python代码质量的守护神:Flake8背景:为何选择Flake8?简介:Flake8是什么?安装:如何获取Flake8?使用方法:Flake8的基本命令场景应用:Flake8在实际开发中的作用…

SOMEIPSRV_RPC_13: 不同服务可以共享相同的端口

测试目的: 验证不同的服务是否能够共享同一个传输层协议的端口号。 描述 本测试用例旨在验证在同一个电子控制单元(ECU)上,不同服务的多个服务实例是否能够监听不同的端口,同时确保不同的服务能够共享同一个端口号。 测试拓扑&#xff1a…

接口测试:使用 curl 发送请求

简介 cURL 是一个通过 URL 传输数据的,功能强大的命令行工具。cURL 可以与 Chrome Devtool 工具配合使用,把浏览器发送的真实请求还原出来,附带认证信息,脱离浏览器执行,方便开发者重放请求、修改参数调试,…

SAP HCM 薪酬过账-忽略成本分配的含义

导读 INTRODUCTION 忽略成本分配:昨天分析C0表与C1表的作用,是为今天说的忽略成本分配按钮的铺垫,忽略成本分配这个翻译有点难让人理解,从字母意思感觉就是所有成本类的不拆分处相关的行项目,但是实际不是这样&#xf…

大数据-56 Kafka SpringBoot与Kafka 基础简单配置和使用

点一下关注吧!!!非常感谢!!持续更新!!! 目前已经更新到了: Hadoop(已更完)HDFS(已更完)MapReduce(已更完&am…

ALB快速实现IPv4服务的负载均衡

阿里云应用型负载均衡ALB支持HTTP、HTTPS和QUIC协议,专门面向网络应用层,提供强大的业务处理能力。 为了实现IPv4服务的负载均衡,需要快速创建一个ALB实例,并将来自客户端的访问请求转发至后端服务器。 操作流程 第一步&#x…

多语言 AI 翻译 API 数据接口

AI / 翻译 基于 AI 多语言模型 支持多语言 / 基于模型。 1. 产品功能 基于自有专业模型进行 AI 多语言翻译高效的文本翻译性能全接口支持 HTTPS(TLS v1.0 / v1.1 / v1.2 / v1.3);全面兼容 Apple ATS;全国多节点 CDN 部署&#xf…

ITSS服务经理/ITSS服务工程师,招投标需要准备吗?

信息技术服务标准(ITSS)是中国首套完整的信息技术服务标准体系,全面规定了IT服务产品及其组成要素的标准化实施,旨在提供可信赖的IT服务。 在国际竞争日益激烈的背景下,推动国内标准的国际化已成为广泛共识&#xff0…

excel如何绘制多列数据的折线图

1.注意表中的数据必须是数据类型的,不能是字符串格式的。如果是用python生成的,需要填充int或者float型的数据。 2.选择数据(多列数据的选择,可以按住ctrl键后选中多列) 2. 选择插入 3.选择 推荐的图表->所有图表…

JumpingKnowledge

文章目录 JumpingKnowledge思想: 举例 贯彻费曼学习法,用最简单的语句阐述复杂的理论 PYG JumpingKnowledge JumpingKnowledge GNN里也有JK了吗 思想: 非常简单。 假设有3层GNN,将经过GNN的每一层都保存下来,即中间…

Mybatis批量更新数据库错误

问题:记录一次使用Mybatis批量更新数据库的错误,错误信息,Error updating database. Cause: org.postgresql.util.PSQLException: 错误: 字段 "update_time" 的类型为 timestamp without time zone, 但表达式的类型为 text 建议&am…

你了解渗透测试吗?渗透测试在网络安全行业属于食物链什么层级?

可能大家对于行业存在食物链这一说法,印象最深的往往是编制行业,所谓的等级主义在那里确实更为明显。但实际上,各行各业都或多或少存在这种层级结构,网络安全领域也不例外,毕竟都是一些所谓的“人情世故”。那么就网络…

使用Qt3D绘制机械手场景

文章目录 1.前言2.效果3.实现过程3.1.场景代码3.2.自定义模型的渲染3.3.绘制直线或者网格 4.有待解决的一些问题4.1.线宽的设置、背面消隐(culling)的设置4.2.法线的问题 1.前言 之前是使用Coin3D来绘制机械手场景的【Qt利用Coin3D(OpenInve…