- 浏览: 347859 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
pacoson:
感谢楼主。请受小生一拜。
ANT预编译JSP -
zhuhongming123:
一楼的同学Lucene4.* 以上的 已经改成了Numeric ...
Lucene日期排序及组合查询 -
ywjk520:
RangeQuery在哪个包里?
Lucene日期排序及组合查询 -
willwen:
有个疑问,楼主,为何初始化bits 从txt读取已有的网址是直 ...
布隆过滤器(Bloom Filter)之java实例 -
yu_226528:
还不如没有呢
jFreeChart 在jsp页上实现简单的折线图、柱状图
spring提供的定时发送邮件功能一直深受广大web开发者的喜爱,最近忙里偷闲,自己写了个简单的例子以供大家参考,
首先从spring配置文件开始吧:
<!-- *****定时任务开始************** --> <!-- 定时发送邮件填写timesheet通知--> <bean id="JobServiceImpl" class="com.mdcl.timecard.mail.impl.MailManager"/> <!-- 定义调用对象和调用对象的方法 --> <bean id="projobtask" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"> <property name="targetObject"> <ref bean="JobServiceImpl"/> </property> <property name="targetMethod"> <value>sendTimeSheetAlert</value> </property> </bean> <!-- 定义触发时间 --> <bean id="timecardSendMail" class="org.springframework.scheduling.quartz.CronTriggerBean"> <property name="jobDetail"> <ref bean="projobtask"/> </property> <!-- cron表达式 --> <property name="cronExpression"> <value>0 0 0 ? * 5</value> </property> </bean> <!-- 总管理类 如果将lazy-init='false'那么容器启动就会执行调度程序 --> <bean id="startQuertz" lazy-init="false" autowire="no" class="org.springframework.scheduling.quartz.SchedulerFactoryBean"> <property name="triggers"> <list> <ref bean="timecardSendMail"/> <!-- <ref bean="doTime"/> --> </list> </property> </bean>
Java代码:
你将在下面的代码中找到上面红色标注的那个方法
package com.mdcl.timecard.mail.impl; /** * Title: mail * * @Company: company * @author: myjavaword * @version: 1.0 * @time: 2008.4.22 * @Copyright: Copyright (c) 2008,dmcl. All Rights Reserved. */ import java.util.ArrayList; import java.util.List; import javax.mail.MessagingException; import org.apache.commons.lang.StringUtils; import org.apache.log4j.Logger; import com.mdcl.timecard.action.BaseAction; import com.mdcl.timecard.mail.IMailManager; import com.mdcl.timecard.po.Resource; import com.mdcl.timecard.service.IResourceService; import com.mdcl.timecard.util.StringUtil; import com.mdcl.timecard.util.SystemManager; public class MailManager implements IMailManager { SimpleHtmlMailSender messageSender; private static final Logger logger = Logger.getLogger(MailManager.class); public void sendMail() { } /** * 发送填写timesheet通知邮件 */ public void sendTimeSheetAlert() { //获取资源列表 List<Resource> list = new ArrayList<Resource>(); //从配置文件获取发件人 String emailfrom = SystemManager.getInstance().getPropValue("emailfrom"); //从配置文件获取连接地址 String wabappurl = SystemManager.getInstance().getPropValue("wabappurl"); String text = "<html><head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=gb2312\"></head><body><a href='"+wabappurl+"'>please add timesheet!</a></body></html>"; // 取出所有资源做循环 Resource resource = new Resource(); resource.setEmail("verygoodverypowerful@gmail.com"); list.add(resource); int i = 0; for (Resource listElement : list) { if(StringUtils.isNotBlank(listElement.getEmail())){ messageSender.sendMessage(listElement.getEmail(), emailfrom, "please Add timesheet", text); logger.info("系统已经通知用户:"+listElement.getName()+"填写本周timesheet 。email:"+listElement.getEmail()+"已经发送成功。"); } } } public SimpleHtmlMailSender getMessageSender() { return messageSender; } public void setMessageSender(SimpleHtmlMailSender messageSender) { this.messageSender = messageSender; } }
IMailManager.java:
package com.mdcl.timecard.mail; /** * Title: mail * * @Company: company * @author:myjavaword * @version: 1.0 * @time: 2008.4.22 * @Copyright: Copyright (c) 2008,dmcl. All Rights Reserved. */ public interface IMailManager { /** * 发送email */ void sendMail(); /** * 发送填写TimeSheet通知emial * @param mailMessage */ void sendTimeSheetAlert(); }
BaseMailSender.java
package com.mdcl.timecard.mail.impl; /** * Title: mail * * @Company: company * @author: myjavaword * @version: 1.0 * @time: 2008.4.22 * @Copyright: Copyright (c) 2008,dmcl. All Rights Reserved. */ import org.springframework.mail.javamail.JavaMailSender; public abstract class BaseMailSender { protected String to; protected String from; protected String subject; protected JavaMailSender sender;//当发送MIMI消息时用到的类 public void setTo(String to) { this.to = to; } public void setFrom(String from) { this.from = from; } public void setSubject(String subject) { this.subject = subject; } public void setJavaMailSender(JavaMailSender sender) { this.sender = sender; } }
配置文件
mail.properties
mail.host=xxxx mail.username=xxxx mail.password=xxxx
conf.properties
emailfrom=Emali地址 emailto=Email地址 wabappurl = 填写链接ui
发表评论
-
HttpClient 学习整理
2010-12-02 14:05 796一般的情况下我们都是使用IE或者Navigator浏览器来访问 ... -
Log4j配置详解
2010-11-19 15:36 9441.Log4j日志管理系统简 ... -
C++和JNI的数据转换(3)
2010-09-29 14:58 953Java 测试native代码这没有什么多说的,看代码吧 ... -
C++和JNI的数据转换(2)
2010-09-29 14:49 1071全部的C/C++方法实现代码如下: /**//*** ... -
C++和JNI的数据转换(1)
2010-09-29 14:42 1811<script type="text/java ... -
ANT预编译JSP
2010-09-07 22:27 2551<?xml version="1.0" ... -
java操作Excel(jxl)
2010-08-05 09:27 1120package test;import jxl.*; ... -
什么是Jetty
2010-05-21 17:03 1050Jetty 是一个开源的servlet ... -
使用jetty作为嵌入式web容器(部署war文件)
2010-05-21 16:58 1258由于工作的需要,仓促的摸了一把jetty,觉得jetty在作为 ... -
一段分页代码PaginationSupport.java
2010-05-01 16:37 1298package com.iteye.common.hibern ... -
response.sendRedirect() 的session丢失问题
2010-04-29 10:42 2894使用时response.sendRedirect(),如果 ... -
EHCACHE简介
2010-04-25 19:37 978二级缓存 EHCache是一个 ... -
jFreeChart 在jsp页上实现简单的折线图、柱状图
2010-02-08 14:22 3639创建柱状图 1 引入jFreech ... -
用dom4j实现openfire式导航菜单
2010-01-06 22:26 1637借鉴Openfire项目中 ... -
Jxl简析(二)
2009-11-30 18:31 1050(二)应用 在进行实践前,我们需要对excel ... -
Jxl简析(一)
2009-11-30 18:28 1184最近,完成了一个网上报表系统,刚巧用到了一个JAVA操作exc ... -
Java实现异库多表多字段的同时导入导出
2009-11-28 16:59 1726最近公司做的项目中要求把项目实施单位的原有系统中的表导入到我们 ... -
JavaMail API详解
2009-11-26 16:12 889版权声明:本文可以自由转载,转载时请务必以超链接形式标明文 ... -
FCKeditor 2.6.3与FCKeditor.java 2.4在JSP中配置
2009-11-26 16:08 24281.FCKeditor 介绍 FCKeditor 这个开 ... -
IE6中奇偶中文参数乱码的问题
2009-11-14 12:55 2762form是以post方式传递的,pager-taglib中接受 ...
相关推荐
本文将详细探讨如何在Spring环境中,利用JavaMail和Quartz库实现定时发送邮件的功能。 #### JavaMail简介 JavaMail API是一个允许Java应用程序读取和发送邮件的工具包。它提供了与不同邮件协议(如SMTP、POP3和...
本项目“spring+quartz+javamail定时发送邮件”结合了Spring框架、Quartz调度器以及JavaMail API,构建了一个能够定时发送邮件的系统。以下将详细介绍这三个关键组件及其整合方式。 首先,Spring框架是一个广泛使用...
在这个场景中,我们将讨论如何在Spring Boot中集成Quartz框架来实现定时发送邮件的功能,以及如何从数据库中读取数据生成报表。 首先,我们需要在Spring Boot项目中引入Quartz的相关依赖。在`pom.xml`或`build....
要实现定时发送邮件,我们可以结合 JavaMail 与 Java 的定时任务框架,如 Timer 和 TimerTask,或者使用更现代的 Quartz Scheduler 或 Spring Scheduler。在这个场景中,我们将主要探讨如何使用 Java 计时器框架来...
本项目“mvc定时发邮件”利用SpringMVC、MyBatis和Quartz框架,结合JavaMail API,实现了定时向指定邮箱发送邮件的功能。以下是对这个项目涉及的关键技术点的详细说明: 1. **SpringMVC**:SpringMVC是Spring框架的...
Java Spring 整合Email与Quartz是一个常见的任务,主要用于实现定时发送邮件的功能。Spring框架提供了强大的集成能力,让我们能够方便地将Quartz定时任务库与Email服务结合,从而实现自动化的工作流。 首先,我们来...
然后,我们使用Spring Task或者Quartz定时任务来每天定时发送邮件。这里以Spring Task为例,创建`TaskSchedulerConfig.java`配置类: ```java import org.springframework.context.annotation.Configuration; ...
1. **邮件服务**:使用JavaMail API与SMTP服务器交互,设置好邮件内容、收件人、主题等,并通过Quartz Job在指定时间触发发送。 2. **短信服务**:可能涉及到与短信服务提供商的API集成,如阿里云短信服务,需要正确...
在Java应用中,可以结合JavaMail API和Quartz实现定时发送邮件的功能。首先,配置SMTP服务器信息,然后创建一个Job类处理邮件发送逻辑。在`execute`方法内,使用JavaMail发送邮件。接着,创建一个CronTrigger或...
5. Quartz定时任务 Quartz库的使用涉及`Job`(任务)、`Trigger`(触发器)和`Scheduler`(调度器)。以下是一个简单的例子,定义一个发送邮件的Job,并使用CronTrigger设定定时规则: ```java public class ...
综上所述,"spring技术手册demo2"涵盖了Spring在分布式系统中的核心功能,展示了如何利用RMI实现远程服务调用,利用Quartz进行任务调度,以及通过JavaMail API发送邮件。这不仅提供了实际操作的示例,也为理解Spring...
Spring实现邮件发送功能 Spring框架提供了一个名为JavaMailSender的工具类,以便于实现邮件发送功能。这篇文章将详细介绍如何使用Spring实现邮件发送功能,并提供了相关的配置和代码实现。 Spring 邮件发送功能...
总的来说,"quartz-all-1.6.5.jar"是一个包含Quartz所有功能的集合,能够帮助开发者实现复杂的时间驱动任务,如定时发送文件。配合Spring框架和JavaMail的相关库,可以构建出稳定、可靠的自动任务执行系统。在实际...
JavaMail 可以轻松地与 Spring、Quartz 等框架集成,实现定时发送邮件、事务邮件等功能。 通过深入研究这些源代码,开发者不仅可以学习如何使用 JavaMail 实现邮件功能,还能了解其内部工作原理,为开发高效、可靠...
综上所述,这个示例不仅展示了如何在 Spring 应用中集成和使用 Quartz 定时任务,可能还包括了 Web 服务的调用、XML 处理、网络通信和邮件服务等其他功能。通过分析和学习这个示例,开发者可以加深对 Spring 整合第...
"只是一个小小的一个娱乐demo"表明这是一个小型的、非正式的项目,主要用于展示或测试特定功能,如定时发送邮件,而不是用于大规模生产环境。 "功能良好,可以悄悄地发给小伙伴,一起快乐"意味着项目已经实现了预期...
首先,`spring-context-support`的核心在于其对第三方库的集成,如Quartz定时任务、JavaMail服务、Cache抽象以及JMS(Java消息服务)等。这些功能使得Spring能够无缝地与现有的企业服务进行交互,提高了代码的复用性...
- **定时任务**:如果需要定期发送邮件,可以结合Quartz或Spring的定时任务功能。 - **邮件验证**:在用户注册或更改重要设置时,发送验证邮件以提高安全性。 - **邮件队列**:对于大量发送的邮件,可以考虑使用...