定时发送发送邮件

Python办公自动化实践:连接MySQL数据库实现每日定时批量发送报表邮件 需求:编写一个Python程序每天定时给业务人员发送报表。实现思路:要定期发送报表需要Python连接MySQL获取数据库每日更新的数据;然后把数据按照指定格式写入到Excel表格内,若有需求还可以在工作表内绘制图表;最后利用Python 的邮件发送模块把报表作为附件发送给收件人。在使用自定义程序发送邮件时需要先开通POP3/SMTP服务和IMAP/SMTP服务。代码中加入了while和if循环,使用了xlsxwriter模块替代df.to_excel命令,使用了openpyxl模块可以插入图片。 阅读详情

更多的查看这里:http://ramonblog.cloudfoundry.com/

继续上次在MySql中定义的Event Scheduler的功能,如果Event执行过程中出错,要求发送邮件到指定的邮箱。由于MySql不提供发送邮件的功能(至少我也没有找到相关的信息),想着由Web系统定时检查EventLog表,Event执行失败将插入数据到这个表,如果发现有错误信息,则发送邮件,之后再将这些EventLog中相应的错误信息给清除掉,当然只是修改标示符,而不是真正的删除。

定时检查

对于Servlet,可以实现ServletContextListener,然后在启动的时候定义java.util.Timer来调度java.util.TimerTask执行特定的任务。显然这个是很容易理解的。

发送邮件

发送邮件可以利用我这篇文章里面提到的Java Mail的包,可以很简单。但是呢,由于我是用AWS,AWS for Java的库里面自带了JavaMail包,所以我就直接运用这个了,但是其复杂程度是前者的2-3倍。具体可以参考后面的代码。我这里参考了这篇文章http://qing.weibo.com/tj/678f0ab83300029n.html。由于这里用的是Gmail,如果直接用它的方法,会抛出一个错误“530 5.7.0 Must issue a STARTTLS command first. f3sm9277120nfh.74”,为了解决它,我查找到StackOverflow的一个解决方法。 你也可以从官方的FAQ中找到答案。

import java.util.Date;
import java.util.List;
import java.util.Properties;
import java.util.Timer;
import java.util.TimerTask;

import javax.mail.Address;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;


/**
 * Application Lifecycle Listener implementation class AggregationEventChecker
 *
 */
public class AggregationEventChecker implements ServletContextListener {
    private Timer timer = new Timer();

    /**
     * Default constructor.
     */
    public AggregationEventChecker() {

    }

    /**
     * @see ServletContextListener#contextInitialized(ServletContextEvent)
     */
    public void contextInitialized(ServletContextEvent arg0) {
    //立即启动,间隔1小时
        timer.schedule(new AggregationEventCheckTimerTask(), 0, 3600 * 1000);
    }

    /**
     * @see ServletContextListener#contextDestroyed(ServletContextEvent)
     */
    public void contextDestroyed(ServletContextEvent arg0) {
    //销毁timer
        timer.cancel();
    }

    private class AggregationEventCheckTimerTask extends TimerTask {

        @Override
        public void run()
        {
            sendEmail()
        }

        private boolean sendEmail()
        {
            try
            {
                Properties props = new Properties();
                props.put("mail.smtp.host", "smtp.gmail.com");
                props.put("mail.smtp.port", 25);
                props.put("mail.smtp.auth", "true");

                String userName = "ramon@gmail.com";
                String password = "yourpassword";

                Session session = Session.getDefaultInstance(props, null);
                Message msg = new MimeMessage(session);

                Address from = new InternetAddress("llmfei@gmail.com");
                Address to = from;
                msg.setFrom(from);
                msg.setRecipient(Message.RecipientType.TO, to);

                msg.setSubject("Test");
                msg.setSentDate(new Date());
                msg.setText('Test Email');

                Transport transport = session.getTransport("smtps");
                transport.connect(props.getProperty("mail.smtp.host"), userName, password);
                transport.sendMessage(msg, new Address[] {to});
                transport.close();

                return true;
            }
            catch (AddressException e)
            {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            catch (MessagingException e)
            {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            return false;
        }

    }
}
用python定时发送邮件 用python定时发送邮件 2020/12/24 Python 3.6.3 |Anaconda custom (64-bit)| 关键词:python邮件发送;定时 一、 用python实现邮件发送 (一)用到的模块 email Type: module String form: <module 'email' from 'D:\\Anaconda\\lib\\email\\__init__.py'> File: d:\anaconda\lib\email\__i 阅读详情

相关推荐

Python每天定时发送监控邮件

用python每天定时发送监控邮件

阿黎逸阳的博客 8211

mysql发送消息_如何使用mysql事件自动发送消息?

I have mysql database and this database include birth day and mail adres for customers.I write asp.net web applicationI want to do every day I will check birthdays with system date if it is equal even...

weixin_36422050的博客 290

C#实现定时邮件发送的完整指南

随着信息技术的快速发展,定时发送邮件的需求在商业和日常沟通中变得越来越普遍。在C#中实现邮件发送功能,不仅可以处理日常的邮件通知,还能在特定时间自动向用户发送预定内容,从而提高工作效率和用户体验。本章将概述定时发送邮件的概念和开发必要性,为读者提供一个整体的框架和思维导图,为后续章节的具体实现奠定基础。我们将从简单的邮件发送功能开始,逐步深入到定时发送机制、邮件模板应用以及异常处理等高级功能的探索。

weixin_42143092的博客 987

Mysql定时备份,并通知邮箱

本文档只是为了留档方便以后工作运维,或者给同事分享文档内容比较简陋命令也不是特别全,不适合小白观看,如有不懂可以私信,上班期间都是在得。

小豪的博客 435

立创开源:基于STM32F407的大疆M30T无人机PSDK机载开发板硬件设计与飞行控制实现

本文详细介绍了基于STM32F407微控制器为大疆M30T无人机设计PSDK机载开发板的完整流程。从关键的E-Port接口电路设计、电源保护,到STM32最小系统搭建,再到通过PSDK实现与无人机的通信及基础飞行控制,提供了从硬件到软件的全栈实战指南,助力开发者快速入门无人机负载开发。

weixin_35649491的博客 401

新手避坑指南:在MacBook上为PyTorch正确配置MPS环境,跑通第一个YOLOv8训练

本文详细指导新手如何在MacBook上为PyTorch正确配置MPS环境,并成功运行YOLOv8训练。从环境准备、PyTorch安装到YOLOv8配置和性能调优,提供全面的避坑指南和实用技巧,帮助开发者充分利用Mac的GPU加速能力。

weixin_29100399的博客 228

Mysql优化诀窍-定时维护(定时任务案例 定时发送邮件)

mysql获取当前时间的时间戳函数 unix_timestamp() 利用定时任务 制作简易的定时发送邮件功能 PHP脚本 版本 我们利用定时任务 每隔一分钟就调用下面这段脚本 去查找出那些邮件状态为0(未发送)的数据,然后取出它的发送时间与当前时间进行比较,小于或等于当前时间就执行发送逻辑 以上是模拟发送成功 并没有发送逻辑 实际开发中我们需要借助第三方邮...

weixin_41421227的博客 1033

脑电信号处理实战 01 | 从 0 跑通第一个 EEG 分析:加载、滤波、频谱与“睁眼闭眼“

本文以 UCI 公开数据集"EEG Eye State"为例,从零走通脑电处理的完整流水线——数据加载、1–40 Hz 带通滤波、Welch 功率谱、频带功率、通道相关性与箱线图质控、睁闭眼对比和时频分析,并用 8 张科研风格图层层揭示这份数据中的伪迹与通道重复问题,说明"流程跑得通不等于结果可信,质量控制永远先行"。

qq_53529450的博客 112

java实现定时发送邮件

前几天,需要做一个功能就是 客户使用我们公司的设备的时候 ,每天固定一个时间点 ,我们定时发送该设备的数据到客户邮箱,让客户了解自己设备的一个情况,由于代码不能上传,就把当时我开始搭建开发而写的一个demo记录下来,实现的原理是一样的,非常之简单. 一.创建一个springboot的项目 项目结构图: 首先,我们先测试邮件发送 controller层 ...

FindHuni的博客 5917

2025年CSP-J复赛真题及题解:T4 多边形(polygon)

2025年CSP-J复赛真题及题解:T4 多边形(polygon)

王老师青少年编程 1716

Python爬虫实战:携程/飞猪酒店信息爬取与动态价格分析

在当今数字化旅游时代,酒店预订平台的复杂筛选条件和动态定价机制为数据分析和价格监控带来了巨大挑战。本文将深入探讨如何使用最新的Python爬虫技术来抓取携程和飞猪平台的酒店信息,处理复杂的筛选条件,并解析动态价格数据。本文详细介绍了如何使用最新的Python爬虫技术来抓取携程和飞猪平台的酒店信息。通过结合httpxplaywrightparsel强大的反反爬虫能力:通过浏览器指纹伪装、请求签名、智能延迟等技术应对各种反爬措施高效的数据解析:使用CSS选择器和XPath精确提取所需信息灵活的数据存储。

2201_76125261的博客 414

利用spring定时器发送定时邮件

spring 的org.springframework.mail包提供的对邮件的支持。 1.封装一个方法用于发送邮件的方法: /** isValate:是否校验(或者授权):true to:邮件接收者地址数组。:{"***@qq.com","***@qq.com"},因为是数组所以支持群发。 subject:邮件主题 context:邮件内容 */ public sta

hyf_javatest的专栏 9615

UE5 推荐的资产命名规范

在开发阶段中,随着 虚幻引擎(UE)(Unreal Engine (UE)) 项目日益复杂,内容浏览器(Content Browser) 中的 资产(Assets) 列表会不断扩充。这会导致资产出现各种变体版本,也会导致资产名称因过于相似而造成混淆。比如,你有一个文件夹名为"Soldier",这个文件夹中有蓝图、纹理和模型,它们的名称中都带"Soldier"一词,但在简单列表中,很难区别它们。

一碗清深的博客 3373

定时发送邮件

首先,先了解一下如何通过邮箱的服务器发送邮件,其实就是一堆API, 先导入mail.jar的文件通常发送邮件的方法不需要自己写: 但要知道每一步都干些什么: 一. 先与服务器获取连接,得到的会话session对象就是连接成功的标志, (1) SMTP通常为发送邮箱的协议POP3为接受邮件的协议, (2)确定设置邮件的服务器地址本机的为localhost (3)设置发件人的账号密码(也可通过传参来...

shangsiqi1的博客 802

华为od 面试八股文_数据库_01_含答案

华为od 面试八股文_数据库_01_含答案

MISAYAONE的博客 2165

PC 端微信页面拆分及 JavaFx 使用

一、前言 对于一个知识点的学习过程来说,往往使用自己熟悉的工具或方式才更易于上手。因为所有同类型的知识点在抛出复杂的流程拨云见日后,所能得到的几乎都是同样的设计思想和实现理论。 在 Java 语言桌面版开发中,直至目前共提供了三套 UI 开发方式;Awt、Swing、JavaFx,以及一些扩展组件 SWT 等。在这三套 UI 组件中,JavaFx 是最新也是最为好用的,因为他提供了丰富的功能,以及...

bugstack虫洞栈 3607

java定时发送邮件

最近做项目时客户提出了一个需求:系统定时发送E-mail到其客户,达到通知的效果。先将实例分享给大家,如果确实有一些帮助的话,请大家来点掌声! 首先介绍java定时器(java.util.Timer)有定时执行计划任务的功能,通过设定定时器的间隔时间,会自动在此间隔时间后执行预先安排好的任务(java.util. TimerTask) 如: 每隔一个小时执行任务 timer.schedu...

LTY_Sun的博客 1569

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

springboot定时发送html邮件

一、pom.xml添加邮件依赖 &lt;!--发邮件--&gt; &lt;dependency&gt; &lt;groupId&gt;org.springframework.boot&lt;/groupId&gt; &lt;artifactId&gt;spring-boot-starter-mail&lt;/art...

A 1万+

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Java定时发送邮件

背景 甲方爸爸:新接入业务在国庆以及军运会期间需要每天巡检业务并发送邮件告知具体情况! 我司:没问题。 甲方爸爸:假期也要发噢。 我司:没问题(。。。)。 刚开始计划指定几个同事轮流发送,业务只要不被攻击一般是没有问题的。但是想一想休息日还要处理工作上的事情(非紧急的)就不爽,近几年一直在做前端的事情,后台碰的少,毕竟也接触过,所以决定搞一个定时发送邮件的程序,遂上网查找资料。 邮件...

weixin_30376509的博客 822

Java实现发送邮件(定时自动发送邮件)

在我们做项目时,有些需求需要通知其他人。比如在手机号获取验证码登录时,会发送短信给该用户去接收验证码从而进行身份确认进行安全登录。但有些时候是需要进行群发消息通知用户的,这个过程肯定不是认为的去发送,所以我们就用java来实现通知用户的邮件发送功能。 至于为什么要发送QQ邮件通知用户,而不是使用短信等方式?想必对这方面有些了解的就知道短信服务是要开通服务的,就是需要交钱的(这个钱是根据具体发送短信的条数算的),这里对于收钱的我们就不演示了。都这么说了,大家肯定猜到了QQ邮件是免费的!没错啊,你没有听

心态的博客 5591

Python每天定时发送邮件

1.今天要写的是用Python每天定时发送邮件,邮件内容包括天气信息和金山词霸的每日一句 2.首先编写代码: import smtplib,requests,json from email.mime.text import MIMEText import time def getWeather(city,link): url = link+city r = requests....

qq_42169450的博客 3847

springboot发送邮件和定时发送邮件

springboot发送邮件和定时发送创建springboot项目编写配置文件实现发送邮件和定时发送开启发送邮件的协议 创建springboot项目 在搜索框里搜索一下mail 选择红色圈圈标记的 就可以下一步了 编写配置文件 实现发送邮件和定时发送 启动类上加上@EnableScheduling @EnableAsync项目里我没用所以加不加都可以 @SpringBootApplication @EnableAsync //启用spring异步方法执行功能 @EnableSchedu

qq_36900632的博客 750

发送邮件_定时自动发送邮件

用python实现自动定时发送邮件,能免去重复编辑内容和文件等琐碎性内容的烦恼,还可以将python自动生成的数据直接发给自己实现自动化,如将抓取出的异常成交数据直接每隔一小时发送。定时自动发送邮件,可分两步实现,一是自动发送邮件,二是利用电脑的定时程序自动执行。发送邮件的内容,不外乎文本格式的正文、图片以及附件,本着循序渐进的思想,本文先讲述如何发送只发送正文的邮件,再讲述发送含正文、...

weixin_39943750的博客 1311

PHP 定时发送邮件

由于工作需要,做了一个PHP自动发送邮件的功能,为了以后可能需要,先简单记录一下 1. 下载专门为PHP发送邮件服务的包class.phpmailer,这个网上可以下载 2. 那么如何使用这个包发送邮件呢? 1. function emailgroup($From_u_name,$From_u_cname,$To_u_name,$To_u_cname,$dp_name,$gro

fangchongbory的专栏 6689
上一篇: [转载]我一定是疯了
下一篇: 为什么会有NodeJS之一
llmlx
博客等级 码龄23年 15粉丝 105原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值