基于james3.0 的邮件系统(struts2.3.2 +spring3.0.1+jpa(hibernate3.6.5)实现)b/s模式--java邮件系统

本文主要是介绍基于james3.0 的邮件系统(struts2.3.2 +spring3.0.1+jpa(hibernate3.6.5)实现)b/s模式--java邮件系统,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

下载地址一

https://code.google.com/p/java-mail-system/downloads/list

下载地址二

 下载

客户端版http://blog.csdn.net/afgasdg/article/details/6359702

有需要的可以加入java邮件系统群162909241

                            java邮件系统群2246547643

源代码SVN地址:http://java-mail-system.googlecode.com/svn/trunk/

一、             环境配置

本系统需要的环境:apache james3.0邮件服务器、tomcat 服务器、Mysql5.1数据库

二、             具体环境配置

Mysql5.1 配置

         使用本系统前请将mysql编码设置成utf-8编码形式,mysql用户名 root,密码root。

另外在mysql数据库中新建一个数据库名称为email的数据库。(不需要建立任何数据表运行时自动生成数据表)

 

James邮件服务器配置:

         1、对于邮件服务器的配置请将,james3.0-conf.zip文件解压之后覆盖james邮件服务器的conf目录。

         2、对于不是联网的用户需要修改james邮件服务器以下配置:(原因:james邮件服务器启动时需要联网加载xml校验文件。)

将activemq-core-5.4.1.jar文件覆盖原来的lib目录下的(activemq-core-5.4.1.jar)文件。

         Tomcat配置

1、  本系统需要javamail1.4.3 jar包。

项目中已经将jar包导入到了构建路径中,但是如果采用的是J2EE5将使用J2EE5中默认的javaMail  jar包。这个我还没有找到解决办法。而J2EE6使用的javamail版本刚好是1.4.3。故请使用J2EE6

三、             系统说明

本系统是使用 struts2.2.3+ spring 3.0.1 + jpa(hibernate3.6.5)+ jquery1.6.2 + jquery uploadify实现的。

请将项目的编码格式设置为utf-8格式的编码(否则可能出现乱码)

将本系运行时请输入 http://localhost:8080/email/

另外强调一点 ,使用前请先注册一个管理员账号。管理员账号 admin 、密码 admin,用于找回密码自动发送邮件时使用。

注意:1、系统可能导入之后有错误,那是因为缺少serverlet、jstl、standard等jar包(注意版本要对应)

           2、运行时如果出现拦截器异常,请将struts2配置文件中的拦截器去掉

           3、在第一次收取邮件时由于“收件箱”没有被初始化,请在发送邮件之前点击收件箱,否则可能发送不成功

外网发送邮件邮件服务器设置:

       1、修改dnsservice.xml(域名解析设置)
             

[html]  view plain copy
  1. <dnsservice>  
  2.     <servers>  
  3.     <server>8.8.8.8</server><!-- 这个是域名解析服务器IP地址,需要修改成自己的域名解析服务器 -->  
  4.     </servers>  
  5.     <autodiscover>false</autodiscover>  
  6.     <authoritative>false</authoritative>  
  7.     <maxcachesize>50000</maxcachesize>  
  8. </dnsservice>  
         2、修改domainlist.xml

         

[html]  view plain copy
  1. <domainlists>  
  2.   <domainlist class="org.apache.james.domainlist.xml.XMLDomainList">  
  3.     <domainnames>  
  4.       <!-- 这个是自己的域名 -->  
  5.       <domainname>domain.cn</domainname>  
  6.     </domainnames>  
  7.     <autodetect>false</autodetect>  
  8.     <autodetectIP>false</autodetectIP>  
  9.   </domainlist>  
  10. </domainlists>  
          3、修改mailserver.xml文件

[html]  view plain copy
  1. <mailserver>  
  2.   <postmaster>Postmaster@domain.cn</postmaster>  
  3.   <enableVirtualHosting> false </enableVirtualHosting>       
  4.   <defaultDomain> domain.cn</defaultDomain>  
  5.   <!-- 服务器域名,如果不设置其他邮箱可能拒收 -->  
  6.   <helloName autodetect="true">domain.cn</helloName>  
  7. </mailserver>  


四、             系统运行效果


图1.1 登录页面

 

图1.2 登录成功页面

 

图1.3 注册页面

 

图1.4注册数据校验页面

 

图1.5 注册数据正确页面

 

图 1.6 注册页面填写详细信息

 

图1.7 注册成功页面

 

图1.8 找回密码第一步

 

图1.9 找回密码第二步

 


 

图2.1 写信页面

 

图2.2 收信页面

 

图2.3 通讯录页面

 

图2.4 新建联系人分组页面

 

图2.5 新建联系人页面

 

图2.6 联系人列表页面

 

图2.7 修改个人信息列表

 

 

图2.8 修改个人信息页面

 

图2.9 修改密码

 


 

图3.1 低级搜索列表


图3.1 高级搜索页面

 

图3.2附件批量上传

 

图3.3 附件批量上传情况


有需要的可以加入java邮件系统群:62909241

 下载

这篇关于基于james3.0 的邮件系统(struts2.3.2 +spring3.0.1+jpa(hibernate3.6.5)实现)b/s模式--java邮件系统的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/993507

相关文章

Java实现检查多个时间段是否有重合

《Java实现检查多个时间段是否有重合》这篇文章主要为大家详细介绍了如何使用Java实现检查多个时间段是否有重合,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录流程概述步骤详解China编程步骤1:定义时间段类步骤2:添加时间段步骤3:检查时间段是否有重合步骤4:输出结果示例代码结语作

Java中String字符串使用避坑指南

《Java中String字符串使用避坑指南》Java中的String字符串是我们日常编程中用得最多的类之一,看似简单的String使用,却隐藏着不少“坑”,如果不注意,可能会导致性能问题、意外的错误容... 目录8个避坑点如下:1. 字符串的不可变性:每次修改都创建新对象2. 使用 == 比较字符串,陷阱满

Java判断多个时间段是否重合的方法小结

《Java判断多个时间段是否重合的方法小结》这篇文章主要为大家详细介绍了Java中判断多个时间段是否重合的方法,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录判断多个时间段是否有间隔判断时间段集合是否与某时间段重合判断多个时间段是否有间隔实体类内容public class D

使用C++实现链表元素的反转

《使用C++实现链表元素的反转》反转链表是链表操作中一个经典的问题,也是面试中常见的考题,本文将从思路到实现一步步地讲解如何实现链表的反转,帮助初学者理解这一操作,我们将使用C++代码演示具体实现,同... 目录问题定义思路分析代码实现带头节点的链表代码讲解其他实现方式时间和空间复杂度分析总结问题定义给定

IDEA编译报错“java: 常量字符串过长”的原因及解决方法

《IDEA编译报错“java:常量字符串过长”的原因及解决方法》今天在开发过程中,由于尝试将一个文件的Base64字符串设置为常量,结果导致IDEA编译的时候出现了如下报错java:常量字符串过长,... 目录一、问题描述二、问题原因2.1 理论角度2.2 源码角度三、解决方案解决方案①:StringBui

Java覆盖第三方jar包中的某一个类的实现方法

《Java覆盖第三方jar包中的某一个类的实现方法》在我们日常的开发中,经常需要使用第三方的jar包,有时候我们会发现第三方的jar包中的某一个类有问题,或者我们需要定制化修改其中的逻辑,那么应该如何... 目录一、需求描述二、示例描述三、操作步骤四、验证结果五、实现原理一、需求描述需求描述如下:需要在

Java中ArrayList和LinkedList有什么区别举例详解

《Java中ArrayList和LinkedList有什么区别举例详解》:本文主要介绍Java中ArrayList和LinkedList区别的相关资料,包括数据结构特性、核心操作性能、内存与GC影... 目录一、底层数据结构二、核心操作性能对比三、内存与 GC 影响四、扩容机制五、线程安全与并发方案六、工程

JavaScript中的reduce方法执行过程、使用场景及进阶用法

《JavaScript中的reduce方法执行过程、使用场景及进阶用法》:本文主要介绍JavaScript中的reduce方法执行过程、使用场景及进阶用法的相关资料,reduce是JavaScri... 目录1. 什么是reduce2. reduce语法2.1 语法2.2 参数说明3. reduce执行过程

如何使用Java实现请求deepseek

《如何使用Java实现请求deepseek》这篇文章主要为大家详细介绍了如何使用Java实现请求deepseek功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1.deepseek的api创建2.Java实现请求deepseek2.1 pom文件2.2 json转化文件2.2

Java调用DeepSeek API的最佳实践及详细代码示例

《Java调用DeepSeekAPI的最佳实践及详细代码示例》:本文主要介绍如何使用Java调用DeepSeekAPI,包括获取API密钥、添加HTTP客户端依赖、创建HTTP请求、处理响应、... 目录1. 获取API密钥2. 添加HTTP客户端依赖3. 创建HTTP请求4. 处理响应5. 错误处理6.