早就听说Java Mail为JavaEE的规范之一,是为发送接受邮件而制定的规范。从这里就可以看出邮件在这个邮件行业,更或所有行业所起着举足轻重的作用。在公司中,工作中对邮件的使用,就好比我们日常生活中对电话的使用一样。

首先谈一下本人对邮件使用的认识吧!不可否认,电话,QQ,飞信,微信等工具的普及使人与人之间的沟通交流没有了距离的障碍,大大拉近了人与人之间的关系,于是乎是这个硕大的世界,瞬间变的特别的“渺小”。但是在这个沟通方便,交流无障碍的聊天工具中,email能够占有一席之地,必有它自身独有的优势。看一下它的生存之本吧:

1,文本的表达本来就比话语的表达更加准确,尤其是大量信息,内容比较丰富时,例如有图片,视频,音频等。因此在相对大,相对丰富的数据量传输上,Email还是处于优势的地位。

2,对于历史的保存,无论发送的邮件内容是宝贵资料,是交流历史,是情感见证,还是纠纷中的证据等等,通过Email传送的资料都能够很好的保存下来,而且寻找特别方便。而通过QQ等传送的数据,如果需要长期保存,需要我们特别有心来整理保管这些资料。这和Email相比就又体现出Email的优势了。

3,当今社会是个飞速发展的社会,对时间的高效使用是现在每个人的追求。而外界的打扰和时间的利用率占据了很大的因素。而QQ,飞信,电话等这些都是及时工具,是我们被动来接受的,对我们工作学习有很大的影响作用,尤其是在使用番茄学习法等一些更加高效的方法时,可能这些工具就不被受我们欢迎了。而邮件的查看通常都是我们主动来收取查看的,每天可以固定几个时间点进行查看。从而看来Email的使用是既保证了工作效率,又保证了事情的处理。所以说还是非常有优势的。

…………

综上,可以看出Email的使用可以给我们带来非常大的好处,尤其是在公司中。所以在开发的项目软件中,加入Eamil的接受,发送还是非常有必要的。

首先了解一下邮件服务器 有163,新浪,QQ,126,gmail,hotmail等等网上的服务器,当然我们也可以搭建属于自己的邮件服务器,这里推荐一个apachejames3,通过配置此服务器,可以创建各种账号,供我们使用,这样创建的不需要外网,有一个局域网就可以使用了。其中SMTP为发送协议,默认端口为25,POP3接受协议,默认端口为110。有了账号以后我们可以通过outlook,foxmail等邮件客户端进行配置使用。自我认为foxmail还是非常强大的,它的很多功能值的我们挖掘,其创始人张小龙,一个人开发的foxmail,而且当今的微信也是其带队研发的,是非常厉害的,是我们学习的榜样。

由于项目是采用SSH三大框架进行开发的,所以这里直接使用Spring框架提供的JavaMailSender进行邮件的发送。当然使用JavaEE规范自己直接写也可以比较麻烦,毕竟这些框架实现了这些规范我们直接使用就可以的。另外需要推荐的apachecommons email,也是非常不错的。好,这里简单看一个注册账号后,发送电子邮件的功能:

一,首先需要在Spring的配置文件引入支持邮件发送的实现类,注意其中服务器的编写,这里填写了本机,因为使用james3自己搭建了服务器,供练手使用:

 <bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl"><property name="host" value="localhost"/></bean>

然后,我们在保存用户时进行发送电子邮件即可:

 //发送电子邮件 beginSimpleMailMessage simpleMessage = new SimpleMailMessage();//获取发送邮件对象simpleMessage.setFrom("service@local.com");//发件人邮箱simpleMessage.setTo(user.getEmail());//收件人邮箱simpleMessage.setSubject(user.getName() + ",您的系统账号");//主题simpleMessage.setText("账号:" + user.getLoginacct() + "\n密码:" + user.getPassword() + "\n这是系统邮件请勿回复.");//文本的设置mailSender.send(simpleMessage);//进行发送//发送电子邮件 end

这样这个简单功能就算实现了,还是比较简单的。

二,下边在看一个在工作流JBPME4.4中对邮件发送的支持。这里看一个再任务到达时给其发送一个邮件作为提醒,

首先,需要引入名为jbpm.mail.properties的配置文件,放到src目录下,内容配上如下:

 mail.smtp.host=邮件服务器主机mail.smtp.port=端口号mail.from=发件人的邮箱

然后在 JPDL 文件中加入发送邮件的节点即可:

 <process name="领物单审批流程" xmlns="http://jbpm.org/4.4/jpdl"><start g="463,8,48,48" name="开始"><transition g="-71,-17" name="to 发送邮件给田七审批" to="发送邮件给田七审批"/></start><mail name="发送邮件给田七审批" g="410,95,161,40"><to addresses="tianqi@ljh.com"/><subject>田七,你有领物单审批任务</subject><transition g="-71,-17" name="to 田七审批" to="田七审批"/></mail><task assignee="402880eb454fbe6601454fc4aef60002" g="444,181,92,52" name="田七审批"><transition g="-99,1" name="to 结束" to="结束"/></task><end g="463,173,48,48" name="结束"/></process>

这样也就可以进行简单邮件的发送,当然了这里只是一些简单的例子,还需要我们更多钻研这方面。

最后关于邮件的使用还是需要大力提倡,大力使用的。

Email开发初步总结相关推荐

  1. TensorRT 7.2.1开发初步

    TensorRT 7.2.1开发初步 TensorRT 7.2.1开发人员指南演示了如何使用C ++和Python API来实现最常见的深度学习层.它显示了如何采用深度学习框架构建现有模型,并使用该模 ...

  2. GWT与Eclipse集成开发初步研究

    GWT与Eclipse集成开发初步研究 原文:http://blog.sina.com.cn/s/blog_415bd707010086cy.html JDK6.0 下载.安装.配置 http://b ...

  3. 微信小程序云开发初步上手

    微信小程序云开发初步上手 1.概述 2019年11月6-7日,我报名参加了腾讯开发者大会举办的"2019年小程序.云开发极限编程"活动,英文名为"CloudBase Ha ...

  4. GIS二次开发:实验一 ArcGIS Engine 开发初步

    实验一 ArcGIS Engine 开发初步 一.实验目的 掌握ArcGIS Engine的安装: 熟悉ArcGIS Engine中几个常用的控件: 搭建第一个简单的ArcGIS Engine 程序: ...

  5. Cardboard虚拟现实开发初步(二)

    Google Cardboard 虚拟现实眼镜开发初步(二) Cardboard SDK for Unity的使用 上一篇文章作为系列的开篇,主要是讲了一些虚拟现实的技术和原理,本篇就会带领大家去看一 ...

  6. Cardboard虚拟现实开发初步(四)

    Google Cardboard 虚拟现实眼镜开发初步(四) Cardboard SDK for Unity Demo的一些解析 写在前面 自从上次写完这个系列的第三篇,忙了一阵子的项目,忙了一阵子的 ...

  7. Cardboard虚拟现实开发初步(一)

    Google Cardboard 虚拟现实眼镜开发初步(一) 虚拟现实技术简介 不得不说这几年虚拟现实技术逐渐火热,伴随着虚拟现实设备的价格迅速平民化,越来越多的虚拟现实设备来到了我们眼前,也因此虚拟 ...

  8. Cardboard虚拟现实开发初步(三)

    Google Cardboard 虚拟现实眼镜开发初步(三) 利用Cardboard SDK for Unity Demo进行后续开发 在上一篇文章中,我们导入了Cardboard SDK,并且运行了 ...

  9. iOS开发--TDD的iOS开发初步以及Kiwi使用入门

    测试驱动开发(Test Driven Development,以下简称TDD)是保证代码质量的不二法则,也是先进程序开发的共识.Apple一直致力于在iOS开发中集成更加方便和可用的测试,在Xcode ...

最新文章

  1. 3D目标检测多模态融合算法综述
  2. mockito 外部接口_【IDEA开发SpringBoot2.0】使用Mockito进行常规接口测试#05
  3. Oracle Rman 命令详解(List report backup configure)
  4. ORACLE ROWNUM用法、select into与insert into区别、merge into的使用、递归查询
  5. android网络通信之HTTP协议教程实例汇总
  6. 等待ajax,等待Ajax调用(post)完成
  7. 百万个小油馕跨越3000公里来支援!西安加油!
  8. php的web表单系统源码毕设_从业十多年看了千百套Java毕设项目,整理出100个精品!免费分享...
  9. 堆栈在DNA计算机中的应用,堆栈和二叉树数据结构在DNA计算机中的设计与实现
  10. 阿里云支持超级账本最新版 其区块链解决方案进入商用阶段
  11. 盗版,盗版给了我们什么?
  12. php回调后门,PHP 回调后门笔记
  13. linux nmap命令,nmap命令
  14. 为什么使用multiarmed bandit algorithms(多臂赌博机算法)--与A/Btest的对比
  15. noip2003 侦探推理 (字符串处理)
  16. Html中img自带属性有哪些,HTMLIMG标签的属性是有哪些?了解IMG标签的用法
  17. 精准鉴别初级、中级、高级程序员,你是哪一种?
  18. Idea内存占用过高解决方法
  19. 汤唯成了百度地图的“AI算法官” 女神背后靠的就是这些语音技术
  20. 杀毒软件Clam AntiVirus的配置

热门文章

  1. public class 和class 的区别
  2. [工作交接]--如何优雅地交接工作
  3. 基于SSH的框架的银行业务管理系统
  4. springboot萌宠宠物网店的开发与设计 毕业设计-附源码011042
  5. 【深度学习】CNN与RNN有什么不同?
  6. java自动化测试语言高级之HashMap
  7. 上海大厂Android面试经历:史上最通俗计算机网络分层详解,通用流行框架大全
  8. 【React】485- React 大佬都在用的 22 种神奇工具
  9. 《GrowingIO指标体系与数据采集》读书笔记
  10. office word插件开发1