如果不需要做判断 可以不用手动拼接json串
可以用ctrl+shift+t 可以搜寻类名 就能找到具体的类名
回顾
1、用户--角色Span标签的样式:display:inline-block;width:200px2、角色--模块zTree树展示权限列表使用步骤:1、导入js/css 2、jsp中引入js/css3、组织json数据,手动拼接json串[{"id":"","pId":"","name":"","checked":"true|false"}]   4、将这个json串向浏览器输出:response对象手动输出5、客户端可以发出ajax请求,来得到这个json串$.ajax({url:"",dataType:"text",type:"GET",success:function(){}})对多对操作的时候,如果要操作中间表的关系,不需要加cascade3、struts2异常处理框架struts.xml文件中配置<!--全局结果视图--><global-results><result name="error">/WEB-INF/pages/error.jsp</result></global-results><!--全局异常处理--><global-exception-mappings><exception-mapping exception="my.exception.SysException" result="error"></exception-mapping><exception-mapping exception="java.lang.Exception" result="error"></exception-mapping></global-exception-mappings>Action类中throw new SysException("");一、什么是JavaMailJavaMail是提供给开发人员在应用程序中实现邮件发送和接受功能而提供的一套标准开发类库,支持常用的邮件协议,如SMTP、POP3、IMAP,开发人员使用JavaMail编写邮件程序时,无需考虑底层的通信细节(Socket),JavaMail也提供了能够创建出各种复杂MIME格式的邮件内容的API,使用JavaMail,可以使用类似OutLook、FoxMail的软件二、JavaMail的基本概述
1、邮件开发的相关协议SMTP:Simple Message Transfer Protocal 发送协议 默认端口:25POP:Post Office Protocal 邮局协议,POP3版本用的多,接受协议 默认端口:110三、邮件开发的准备工作
1、申请邮箱并开通POP3/SMTP服务
2、引入JavaMail在xxx_parent的pom.xml中添加<!-- Javamail --><dependency><groupId>javax.mail</groupId><artifactId>mail</artifactId><version>1.4.4</version></dependency>       Spring和JavaMail集成还需要在xxx_parent的pom.xml引入<dependency><groupId>org.springframework</groupId><artifactId>spring-context-support</artifactId><version>${spring.version}</version></dependency>如果是web项目,引入spring-context-support-4.2.4.RELEASE.jarmail-1.4.4.jar四、传统的邮件Properties props = new Properties();props.put("mail.smtp.host", "smtp.163.com");//指定邮件的发送服务器地址props.put("mail.smtp.auth", "true");//服务器是否要验证用户的身份信息Session session  = Session.getInstance(props);//得到Sessionsession.setDebug(true);//代表启用debug模式,可以在控制台输出smtp协议应答的过程//创建一个MimeMessage格式的邮件MimeMessage message = new MimeMessage(session);//设置发送者Address fromAddress = new InternetAddress("xxx@163.com");//邮件地址message.setFrom(fromAddress);//设置发送的邮件地址//设置接受者Address toAddress = new InternetAddress("xxx@qq.com");//邮件地址message.setRecipient(RecipientType.TO, toAddress);//设置接受者的地址//设置邮件的主题message.setSubject("我来了");//设置邮件的内容message.setText("啦啦啦");//保存邮件message.saveChanges();//得到发送邮件的火箭[transport]Transport transport = session.getTransport("smtp");//火箭连接到服务器上transport.connect("smtp.163.com", "xxx", "xxx");//火箭点火,发送transport.sendMessage(message, message.getAllRecipients());//关闭通道transport.close();五、邮件发送的工具类的提取public class MailUtil {public static void sendMessage(String toAddr,String subject,String content) throws Exception {Properties props = new Properties();props.put("mail.smtp.host", "smtp.163.com");//指定邮件的发送服务器地址props.put("mail.smtp.auth", "true");//服务器是否要验证用户的身份信息Session session  = Session.getInstance(props);//得到Sessionsession.setDebug(true);//代表启用debug模式,可以在控制台输出smtp协议应答的过程//创建一个MimeMessage格式的邮件MimeMessage message = new MimeMessage(session);//设置发送者Address fromAddress = new InternetAddress("xxx@163.com");//邮件地址message.setFrom(fromAddress);//设置发送的邮件地址//设置接受者Address toAddress = new InternetAddress(toAddr);//邮件地址message.setRecipient(RecipientType.TO, toAddress);//设置接受者的地址//设置邮件的主题message.setSubject(subject);//设置邮件的内容message.setText(content);//保存邮件message.saveChanges();//得到发送邮件的火箭[transport]Transport transport = session.getTransport("smtp");//火箭连接到服务器上transport.connect("smtp.163.com", "xxx", "xxx");//火箭点火,发送transport.sendMessage(message, message.getAllRecipients());//关闭通道transport.close();}
}六、使用JavaMail实现员工登录信息的发送
在员工信息添加时,同时向员工发送一封通知的邮件
数据库字段的修改:USER_INFO_P表
添加EMAIL字段 varchar2(30)
1、修改PO类与映射文件
domain.userinfoprivate String email;//邮箱地址
映射文件Userinfo.hbm.xml<property name="email" column="EMAIL"></property>2、修改jUserCreate.jsp页面<td class="columnTitle">邮箱:</td><td class="tableContent"><input type="text" name="userinfo.email" value=""/></td>
3、业务逻辑层UserServiceImpl//再开启一个新的线程完成邮件发送功能Thread th = new Thread(new Runnable() {public void run() {try {MailUtil.sendMessage(entity.getUserinfo().getEmail(), "新人", "欢迎加入 用户名为"+entity.getUserName()+"初始密码"+SysConstant.DEFAULT_PASS);} catch (Exception e) {e.printStackTrace();}}});th.start();//启动发送邮件的线程七、JavaMail与Spring集成开发CC 英文全称是 Carbon Copy(抄送)BCC英文全称是 Blind Carbon Copy(暗抄送)。两者的区别在于在BCC栏中的收件人可以看到所有的收件人名(TO,CC,BCC),而在TO和CC栏中的收件人看不到BBC的收件人名Spring邮件抽象层的主要包为org.springframework.mail.包括了发送电子邮件的主要接口MailSender,和其实现类SimpleMailMessage,封装了简单邮件的属性如from,to,cc,subject,text。包里还有一颗以MailException为根的checkedException继承树,提供了对底层邮件系统异常的高级别抽象。要获得关于邮件异常层次的更丰富的信息。为了使用JavaMail中的一些特色,比如MIME类型的邮件,spring提供了MailSender的一个子接口,即org.springframework.mail.javamail.JavaMailSender。Spring还提供了一个回调接口org.springframework.mail.javamail.MimeMessagePreparator用于准备JavaMail的MIME信件1、在src目录下建立mail.properties文件里面包含mail.smtp.host=smtp.163.commail.smtp.auth=truemail.username=xxxmail.password=xxxmail.from=xxx@163.com   2、使用spring配置<description>JavaMail配置文件</description> <!-- 加载mail.properties --><context:property-placeholder location="classpath:mail.properties"/><!-- 配置一个简单邮件对象 --><bean id="mailMessage" class="org.springframework.mail.SimpleMailMessage"><property name="from" value="${mail.from}"></property></bean><!-- 邮件的发送对象 --><bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl"><property name="host" value="${mail.smtp.host}"></property><property name="username" value="${mail.username}"></property><property name="password" value="${mail.password}"></property><property name="defaultEncoding" value="UTF-8"></property><!-- 邮件发送相关的配置信息 --><property name="javaMailProperties" ><props><!-- 设置认证开关 --><prop key="mail.smtp.auth">${mail.smtp.auth}</prop><!-- 启动调试开关 --><prop key="mail.debug">true</prop><!-- 设置发送延迟 --><prop key="mail.smtp.timeout">0</prop></props></property></bean>1、发送邮件@Testpublic void Test() throws Exception{ApplicationContext ac = new ClassPathXmlApplicationContext("classpath:applicationContext-mail.xml");SimpleMailMessage message = (SimpleMailMessage) ac.getBean("mailMessage");//加载简单邮件对象JavaMailSender sender = (JavaMailSender) ac.getBean("mailSender");//得到邮件的发送对象,专门用于邮件发送//设置简单邮件对象的属性message.setSubject("spring测试");//主体message.setText("hello");//内容message.setTo("xxx@qq.com");//收件箱//发送邮件sender.send(message);}2、发送带有图片的邮件,以嵌入HTML的方式 和发附件@Testpublic void Test() throws Exception{ApplicationContext ac = new ClassPathXmlApplicationContext("classpath:applicationContext-mail.xml");JavaMailSender sender = (JavaMailSender) ac.getBean("mailSender");//发送一个允许带图片,同时带邮件的邮件MimeMessage message = sender.createMimeMessage();//创建一封允许带图片,同时带邮件的邮件//为了更好的操作MimeMessage对象,借用一个工具类来操作MimeMessageHelper helper = new MimeMessageHelper(message,true);//通过工具类设置主题,内容,图片,附件helper.setFrom("xxx@163.com");helper.setTo("xxx@qq.com");helper.setSubject("来自xxx");helper.setText("<html><head></head><body><h1>hello!!spring image html mail</h1>" + "<a href=http://www.baidu.com>baidu</a>" + "<img src=cid:image/></body></html>", true);//第二个参数说明内容要解析为html代码//添加图片 可以用路径 也可以用new File 弄个对象进去 554HL:IHU 是重复多次发邮件 IP被暂时挂起 可以换IP或者网FileSystemResource resource = new FileSystemResource(new File("C:\\Users\\Administrator\\Desktop\\imgs\\5.11\\TIM截图2.png"));helper.addInline("image",resource);//和cid一致//发送时带附件 FileSystemResource zipResource = new FileSystemResource(new File("C:\\Users\\Administrator\\Desktop\\imgs\\5.11\\TIM截图2.png"));helper.addAttachment("zip文件", zipResource);//发送邮件sender.send(message);}在UserServiceImpl中注入相关的对象//注入邮件发送相关的对象private SimpleMailMessage mailMessage;private JavaMailSender mailSender;public void setMailMessage(SimpleMailMessage mailMessage) {this.mailMessage = mailMessage;}public void setMailSender(JavaMailSender mailSender) {this.mailSender = mailSender;}修改相关的配置<bean id="userService" class="my.service.UserServiceImpl"><property name="baseDao" ref="baseDao"></property><property name="mailMessage" ref="mailMessage"></property><property name="mailSender" ref="mailSender"></property></bean> 添加spring和javamail集成的配置文件applicationContext-mail.xml<!-- 加载mail.properties --><context:property-placeholder location="classpath:mail.properties"/><!-- 配置一个简单邮件对象 --><bean id="mailMessage" class="org.springframework.mail.SimpleMailMessage"><property name="from" value="${mail.from}"></property></bean><!-- 邮件的发送对象 --><bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl"><property name="host" value="${mail.smtp.host}"></property><property name="username" value="${mail.username}"></property><property name="password" value="${mail.password}"></property><property name="defaultEncoding" value="UTF-8"></property><!-- 邮件发送相关的配置信息 --><property name="javaMailProperties" ><props><!-- 设置认证开关 --><prop key="mail.smtp.auth">${mail.smtp.auth}</prop><!-- 启动调试开关 --><prop key="mail.debug">true</prop><!-- 设置发送延迟 --><prop key="mail.smtp.timeout">0</prop></props></property></bean>将邮件相关信息抽取到mail.properties文件中mail.smtp.hostmail.smtp.authmail.usernamemail.passwordmail.from使用线程实现邮件发送// spring集成javaMailThread th = new Thread(new Runnable() {public void run() {try {mailMessage.setTo(entity.getUserinfo().getEmail());mailMessage.setSubject("欢迎");mailMessage.setText("欢迎加入 用户名为" + entity.getUserName() + "初始密码" + SysConstant.DEFAULT_PASS);mailSender.send(mailMessage);} catch (Exception e) {e.printStackTrace();}}});th.start();// 启动发送邮件的线程


ManagementDay06(javamail 发送html内容和附件 实现用户注册时发个邮件通知)相关推荐

  1. javamail发送html正文文件_Python实现-生成测试报告amp;自动邮件发送

    之前单独介绍了生成测试报告和自动发送邮件,那么现在把两者整合到一起:生成测试报告后然后自动发送邮件,这里只是简单的整合实现功能,其实还可以优化的,先用吧,后面再慢慢优化 先看下目录,其实目录还是一样, ...

  2. java 邮件 附件_java中javamail发送带附件的邮件实现方法

    本文实例讲述了java中javamail发送带附件的邮件实现方法.分享给大家供大家参考.具体分析如下: JavaMail,顾名思义,提供给开发者处理电子邮件相关的编程接口.它是Sun发布的用来处理em ...

  3. JavaMail发送带图片,带附件的邮件

    JavaMail发送带图片,带附件的邮件 简介 上一篇文章讲到了使用JavaMail来实现简单邮件的发送,这篇文章是在上一篇文章的基础上来完成的. 导入jar包 <dependency>& ...

  4. javamail发送带附件的邮件,发件速度快

    使用javamail发送邮件,准备工作 1.如果使用的是qq邮箱,则需要登录QQ邮箱,找到"设置--账户"找到如下图,将POP3/SMTP服务和IMAP/SMTP服务开启,然后生成 ...

  5. mail发送的内容显示为附件的解决办法

    利用命令: cat data.mail | mail -v -s "mail test" xxx@qq.com 发送的内容在收件箱中显示为附件tcmimi.xxx.bin. 这是因 ...

  6. linux 邮件附件 中文,linux bash下通过mailx发送中文内容显示为附件的解决

    满意答案 skicotvo99 2017.01.30 采纳率:44%    等级:8 已帮助:561人 linux bash下通过mailx发送中文内容显示为附件的解决mailx版本,这里默认是mai ...

  7. QQ邮箱炸啦,我的附件名怎么乱码?解决javaMail发送QQ邮件,附件名乱码的问题

    解决javaMail发送QQ邮件,附件名乱码的问题 问题背景 具体问题 解决思路 源码Debug 解决方式 问题背景 项目里面使用javaMail发QQ邮件,日志显示我们这边传过去的附件名是正常的,个 ...

  8. JavaMail发送和接收邮件

    一.JavaMail概述:        JavaMail是由Sun定义的一套收发电子邮件的API,不同的厂商可以提供自己的实现类.但它并没有包含在JDK中,而是作为JavaEE的一部分. 厂商所提供 ...

  9. java 发送邮件昵称_利用JavaMail发送QQ邮件

    一.RFC882文档简单说明 RFC882文档规定了如何编写一封简单的邮件(纯文本邮件),一封简单的邮件包含邮件头和邮件体两个部分,邮件头和邮件体之间使用空行分隔. 邮件头包含的内容有: from字段 ...

最新文章

  1. MySQL DBA基本知识点梳理和查询优化
  2. linux环境编程 学习,学习linux环境高级编程首先学习的是文件的操作。因为有.pdf...
  3. 解决虚拟机VMware安装CentOS7.0识别不到网卡
  4. [LeetCode]:116:Populating Next Right Pointers in Each Node
  5. Theano 中文文档 0.9 - 3. Theano一览
  6. Retrofit使用
  7. CCD的基本的基本知识介绍(转载)
  8. Java实现斐波那契数列的两种方法
  9. 简单的python画图代码_常见的python画图简单代码
  10. iir内插滤波器matlab,如何设计用于插值和抽取的IIR滤波器
  11. 【UE4 C++】角色拾取、替换武器(上)
  12. go module 详解
  13. php deployer 从入门到精通
  14. 【报告分享】2020中国教育培训移动应用发展研究报告-TalkingData(附下载)
  15. Wireshark抓包实例诊断TCP连接问题
  16. 安全协议系列(二)----CCM与CCMP
  17. 谈人生理想与个人实现
  18. 字符识别--CRNN+CTC
  19. 2020年Web前端面试题及答案----ES6篇
  20. java制造业MES生产管理ERP系统

热门文章

  1. linux 编辑文件
  2. PHP开发的二级域名分发系统源码
  3. Java读取文件指定编码
  4. 手把手以实例教你使用DOSBOX入门UCOS-II操作系统
  5. Python处理大数据越来越慢的问题
  6. 下拉框默认选中,并获取对应的value
  7. 你会查列车的信用吗?
  8. 三大运营商的游戏“刷金”漏洞解决方案
  9. 微信群收款微信服务即将来临?微信群灰度测试更多玩法
  10. linux tar 文件归档命令