Openjweb的邮件管理功能介绍:
(1) 定义系统发件箱,在后台定时发邮件时会顺序选择系统发件箱进行邮件发送,这样在群发广告邮件时可降低发件箱地址被看作是垃圾邮箱的几率。
(2) 用户可定义自己的邮件群组,并为自己的用户群组增加成员,每个用户只能看到自己创建的群组。
(3) 用户发送邮件时即可以用自己的邮件作为邮件发送地址,也可将邮件加到系统邮件列表中由系统定时发送。
(4) 由于系统配置了邮件定时发送作业,所以在业务系统中可根据业务需要增加邮件正文、邮件标题、收件人信息等内容插入到邮件发送队列中,这样支持了当某种业务事件发生时,系统会以邮件的方式通知收件人。
(5) 如果邮件发送失败,邮件发送队列的邮件状态会变为失败状态,可重新设置状态为“队列中”,系统可继续发送这个邮件。
下面是openjweb平台的邮件管理的界面:
系统邮箱设置:
用户个人邮箱设置(可设置多个):
个人邮件群组设置:
为一个群组选择组成员(用户在上面的列表中只能看到自己创建的群组):
发邮件功能:(用户即可以直接发送,也可以将邮件加到系统的邮件发送队列中,如果一次群发很多收件人的话,适合由系统定时发送):
在上图中,如果要发送大量收件人,建议是否选择系统发件箱为”是”。
邮件发送队列:
如果上面的发邮件功能用系统发件箱发送,那么邮件会被添加到发送队列中,见下图:
系统后台会定时发送状态为“队列中”的邮件,如果发送成功,状态变为“已发送”,发送失败,则状态变为“发送失败”,点编辑,可将“发送失败”再改回”队列中”,这样可以尝试再次发送,下面是编辑页面:
开发说明:
(1) 定时器配置(为了调试方便,设置了每分钟运行一次邮件发送,每次取最早的100条进行发送),见下面的定时器配置(core-service-demo.xml):
<bean id="defaultTimerBean" class="org.openjweb.core.schedule.JobSchedule"/>
…
<bean id="mailTimerMethod" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject" ref="defaultTimerBean" />
<property name="targetMethod" value="doSendMail" />
<property name="concurrent" value="false" /> <!--将并发设置为false-->
</bean>
<bean id="mailTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail" ref="mailTimerMethod" />
<!-- 每1分钟发送一次邮件 -->
<property name="cronExpression" value="0 0/1 * * * ?" />
</bean>
<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<!--作业调度器,list下可加入其他的调度器-->
<ref bean="defaultTrigger"/>
<ref bean="luceneTrigger"/>
<ref bean="mailTrigger"/>
</list>
</property>
</bean>
下面是作业调度类的代码(供参考):
package org.openjweb.core.schedule;
import java.util.List;
import org.apache.log4j.Logger;
import org.apache.lucene.demo.IndexHTML;
import org.openjweb.core.entity.CommSystemMail;
import org.openjweb.core.mail.Mail;
import org.openjweb.core.service.IDBSupportService;
import org.openjweb.core.service.ServiceLocator;
import org.openjweb.core.util.StringUtil;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.springframework.scheduling.quartz.QuartzJobBean;
import com.openjweb.mail.entity.MailSendQueue;
public class JobSchedule extends QuartzJobBean
{
static Logger logger = Logger.getLogger(JobSchedule.class);
static long counter = 0; //计数器
static int mailScheduleFlag =0;//由doSendMail修改,其他方法不要修改此参数
private static List sysMailList = null;//系统邮箱列表,设置为静态变量以避免每次都要去系统邮件列表
/**
* 定时从邮件队列中选择未发送邮件发送邮件
* @throws Exception
*
*/
public synchronized void doSendMail()
{
//定时器同时调用两次的问题需要查找原因
if(mailScheduleFlag > 0)
{
logger.info("邮件进程占用,返回...");
return ;//保证同一时刻只有一个定时器运行,通过这种方式保证每次定时时间到时,只执行一个线程
}
mailScheduleFlag = 1;//锁定
logger.info("开始发送邮件....");
IDBSupportService service = (IDBSupportService)ServiceLocator.getBean("IDBSupportService3");
if(sysMailList==null)
{
try
{
sysMailList = service.findAll("org.openjweb.core.entity.CommSystemMail");//系统邮件列表比较少,所以全部取出
}
catch(Exception ex)
{
logger.error(ex.toString());
mailScheduleFlag = 0;
return ;//如果出现异常,则解除锁定退出
}
}
if(sysMailList==null||sysMailList.size()==0)
{
logger.info("没有配置系统邮件列表");
mailScheduleFlag = 0;//锁定解除
return ;//如果没有配置系统发送邮箱列表则返回
}
Courier N
分享到:
相关推荐
文件 "01-openJWeb快速开发平台功能介绍.doc" 很可能详细列出了`openjweb`的各种功能,包括但不限于:模块化设计、数据建模、表单生成、权限管理、工作流引擎、报表工具、API接口等。这些功能使`openjweb`成为了一...
OpenJWeb提供了强大的后台管理系统,可以通过配置或代码自定义表单,快速生成这些功能。这包括数据库模型的设计、接口编写、前端页面展示等步骤。 3. **工作流引擎**:OpenJWeb内置了工作流引擎,支持BPMN 2.0标准...
- **3.2 邮件发送 API**:集成邮件发送功能,便于系统向用户发送通知邮件。 - **3.3 在线编辑器**:提供文本编辑功能,支持富文本编辑。 - **3.4 JTA 集成**:集成 JOTM 的 JTA 产品,支持分布式事务处理。 - **3.5 ...
在线考试系统是OpenJWeb平台的重要组成部分,它提供了完整的试题管理、组卷策略、考试过程控制和成绩统计等功能。开发者可以通过平台创建各种类型的试题,如选择题、填空题、判断题、问答题等,支持随机组卷和固定...
同时,手册还会介绍如何部署和管理应用,包括热部署功能,这使得开发者在开发过程中无需重启服务器即可实时查看改动效果。 在源码层面,OpenJWeb的设计遵循模块化原则,使得代码易于理解和维护。开发者可以通过阅读...
OpenJWeb 1.9 Release版本提供了丰富的功能和良好的性能支持,适用于快速搭建Java Web应用程序。通过详细的安装步骤与环境配置指南,用户能够轻松地搭建起开发环境并进行后续的应用开发工作。对于需要进行二次开发的...
1. 邮件账户设置:包括创建和管理邮件账户,设置SMTP/POP3/IMAP服务器。 2. 邮件发送与接收:如何编写、发送、接收和回复邮件,以及设置自动回复和转发规则。 3. 邮件过滤与管理:垃圾邮件过滤、邮件分类、归档和...
OpenJWeb的监控功能允许管理员实时查看工作流的运行状态,包括当前活动的任务、等待审批的实例等。而详细的报表系统则为企业提供了全面的工作流绩效数据,帮助企业优化流程,提升效率。 综上所述,《OpenJWeb工作流...
1. **OpenJweb简介**:OpenJweb是一个基于Java的开源快速开发平台,它提供了一整套工具和功能,包括代码生成、表单设计、权限管理等,帮助开发者快速构建企业级Web应用。它的核心优势在于减少了手动编写重复代码的...
OpenJWeb是一个深受开发者喜爱的开源Java Web开发框架,它提供了丰富的功能和强大的扩展性,尤其在工作流管理方面表现突出。本文将探讨如何在OpenJWeb平台上实现一个简易的工作流,以信息发布流程为例,帮助开发者更...
此文件介绍如何利用OpenJweb快速开发平台快速生成增删改查功能页面,已实现由用户定义及创建数据库表,在平台中生成hibernate映射文件和POJO类,生成的增删改查页面包括跨数据库的分页,排序,条件查询,及下拉型字段根据...
在OpenJWeb平台中,本案例聚焦于实现一个简单但实用的审批流程管理功能,以满足企业内部的事务性计划审批需求。该功能主要面向电力行业的应用场景,具体而言是针对一家发电厂的事务性计划审批流程进行设计和开发。 ...
本文介绍最新的开源产品Openjweb java快速应用开发平台,基于struts2+hibernate+spring+spring security,实现了单表,主明细表增删改查,完整的组织结构树和权限管理体系,支持多语设置和自动生成多语言文件,支持可配置...
OpenJWeb3.6业务开发平台支持分布式架构-附件资源
OpenJWeb V1.6采用的主框架为Struts2+Spring+Hibernate+Spring Security,后台管理页面可使用平台的代码生成器来生成。在平台中定义好一个数据库表结构后,可生成对应的数据库表,Java实体类代码,Hibernate配置文件...
- 开发者可以通过该平台轻松地构建包括组织结构维护、用户角色管理、权限控制、邮件发送等在内的基础功能,以及一些高级功能如业务流程管理、网站栏目管理、全文检索等。 - **数据库支持**:尽管没有明确指出...
JWFD申请到一个论坛专区,希望大家对...可以脱离数据库进行流程图数据管理,效率很高 但是如果写入库中,则可以让程序更灵活一些............. 这些程序是在JBuliderX版本中完成的,我把需要用到的LIB都一起打成一个包..