1,Emaill类:

package com.learn.jsp.pojo;

/**
 * 邮件基本信息
 * @author kevin
 *
 */
public class Email {
 private String emailFrom ;
 private String emailTo;
 private String emailSubject;
 private String emailContent;
 
 public String getEmailContent() {
  return emailContent;
 }
 public String getEmailFrom() {
  return emailFrom;
 }
 public String getEmailSubject() {
  return emailSubject;
 }
 public String getEmailTo() {
  return emailTo;
 }
 public void setEmailContent(String emailContent) {
  this.emailContent = emailContent;
 }
 public void setEmailFrom(String emailFrom) {
  this.emailFrom = emailFrom;
 }
 public void setEmailSubject(String emailSubject) {
  this.emailSubject = emailSubject;
 }
 public void setEmailTo(String emailTo) {
  this.emailTo = emailTo;
 }

}

2,EmailThread:

package com.learn.jsp.pojo;

import org.apache.commons.lang3.StringUtils;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;

public class EmailThread implements Runnable {
 private Email email;
 private JavaMailSender emailSender;

public EmailThread(Email email, JavaMailSender emailSender) {
  super();
  this.email = email;
  this.emailSender = emailSender;
 }

public EmailThread() {
  super();
 }

public void run() {
  //发送条件不足
  if (email == null || emailSender == null) {
   System.out.println("发送条件不足发送失败~~~");
   return;
  }

SimpleMailMessage mail = new SimpleMailMessage();
  boolean isOk = true;
  try {
   if (email != null) {
    if (StringUtils.isNotEmpty(email.getEmailFrom())) {
     mail.setFrom(email.getEmailFrom());// 发送者
    } else {
     isOk = false;
    }
    if (StringUtils.isNotEmpty(email.getEmailTo())) {
     mail.setTo(email.getEmailTo());// 接受者
    } else {
     isOk = false;
    }
    if (StringUtils.isNotEmpty(email.getEmailSubject())) {
     mail.setSubject(email.getEmailSubject());// 主题
    } else {
     isOk = false;
    }
    if (StringUtils.isNotEmpty(email.getEmailContent())) {
     mail.setText(email.getEmailContent());// 邮件内容
    } else {
     isOk = false;
    }
   } else {
    isOk = false;
   }
   if (!isOk) {
    throw new Exception("内容为空~~-发送失败");
   }
   // 发送邮件
   emailSender.send(mail);
  } catch (Exception e) {
   System.out.println(e.getMessage());
  }
 }
}

3基础配置:

email.properties

mail.smtp.host=smtp.qq.com
mail.smtp.auth=true
mail.smtp.timeout=50000
mail.smtp.username=xxxxxxx@qq.com
mail.smtp.password=独立密码
mail.smtp.port=465
mail.smtp.starttls.enable=true

4,配置spring bean

<!-- 加载配置文件 -->
 <context:property-placeholder location="classpath:email.properties" />

<bean id="emailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
  <property name="host" value="${mail.smtp.host}" />
  <property name="port" value="${mail.smtp.port}" />
  <property name="username" value="${mail.smtp.username}" />
  <property name="password" value="${mail.smtp.password}" />
  <property name="javaMailProperties">
   <props>
    <prop key="mail.smtp.timeout">${mail.smtp.timeout}</prop>
    <prop key="mail.smtp.auth">${mail.smtp.auth}</prop>
    <prop key="mail.smtp.starttls.enable">${mail.smtp.starttls.enable}</prop>
    <prop key="mail.smtp.socketFactory.port">${mail.smtp.port}</prop>
    <prop key="mail.smtp.socketFactory.class">javax.net.ssl.SSLSocketFactory</prop>
    <prop key="mail.smtp.socketFactory.fallback">false</prop>
   </props>
  </property>
 </bean>

5,controller中注入发送器:

@Autowired
 @Qualifier("emailSender")
 private JavaMailSender emailSender;

6,实现邮件发送

spring邮件发送的更多相关文章

  1. Spring 邮件发送

      前言:以前都是直接用Java自带的邮件工具发送邮件,现在Spring帮我们做了封装,提供了更好用更简单的发送邮件工具JavaMailSender 关于邮件服务器的设置就不在这里说了,直接去QQ邮箱 ...

  2. java spring 邮件发送

    开发中经常会遇到发送邮件进行用户验证,或者其它推送信息的情况,本文基于spring,完成邮件的发送,主要支持普通文本邮件的发送,html文本邮件的发送,带附件的邮件发送,没有实现群发.多个附件发送等需 ...

  3. Spring邮件发送1

    注意:邮件发送code中,邮件服务器的申请和配置是比较主要的一个环节,博主这里用的是QQ的邮件服务器.有需要的可以谷歌.百度查下如何开通. 今天看了下Spring的官方文档的邮件发送这一章节.在这里记 ...

  4. Spring邮件发送2

    前言:上一篇博文讲解了邮件发送的基础用法(数据是写死的),然而在实际开发中,大多数情况下邮件内容都是根据业务来动态生成的.所以在此篇博文中,我们将讲解邮件发送携带数据的几种方案. 一.解析自定义占位符 ...

  5. Spring的javaMail邮件发送(带附件)

    项目中经常用到邮件功能,在这里简单的做一下笔记,方便日后温习. 首先需要在配置文件jdbc.properties添加: #------------ Mail ------------ mail.smt ...

  6. 使用spring的邮件发送功能

    使用spring提供的MailSender和JavaMailSender类. 1.邮件对象类 package cn.luxh.app.mail; import java.util.List; impo ...

  7. 使用Spring的JAVA Mail支持简化邮件发送(转)

    闲来无事,翻看<Spring in Action>,发现Spring集成了对JAVA Mail的支持,有点小激动的看了一遍,嗯,话说真的简单了很多. Spring的邮件发送的核心是Mail ...

  8. Spring Boot 2.0 图文教程 | 集成邮件发送功能

    文章首发自个人微信公众号: 小哈学Java 个人网站: https://www.exception.site/springboot/spring-boots-send-mail 大家好,后续会间断地奉 ...

  9. Spring Boot整合邮件发送

    概述 Spring Boot下面整合了邮件服务器,使用Spring Boot能够轻松实现邮件发送:整理下最近使用Spring Boot发送邮件和注意事项: Maven包依赖 <dependenc ...

随机推荐

  1. [转]JavaScript与元素间的抛物线轨迹运动

    在张鑫旭的博客看到这个抛物线的小动画,觉得很感兴趣,转载一下方便研究~ 原文地址:http://www.zhangxinxu.com/wordpress/?p=3855 在页面上添加元素的位移动画,除 ...

  2. Hibernate项目的创建

    首先,我们需要知道,Hibernate是一个不需要建立在容器的基础上的一个框架,所以在java项目中同样可以运行. 为了证明,我们在这次程序的创建中,用JavaProject文件来实现Hibernat ...

  3. ES6 class的基本语法-学习笔记

    1.基本上,ES6 的class可以看作只是一个语法糖,它的绝大部分功能,ES5 都可以做到,新的class写法只是让对象原型的写法更加清晰.更像面向对象编程的语法而已. 类的内部所有定义的方法,都是 ...

  4. Spring Relational Database

    为了避免持久化的逻辑分散到应用的各个组件中,将数据访问功能放到一个或多个专注于此项任务的组件中,这样的组件通常称为数据访问对象(DAO)或Repository. 为了避免应用与特定的数据访问策略耦合在 ...

  5. 解决react-native软键盘弹出挡住输入框的问题

    解决react-native软键盘弹出挡住输入框的问题 写登录页面,整体界面居中之后就出现软键盘弹出挡住输入框,用户体验不好的情况.用了RN官方的KeyboardAvoidingView组件,会有多出 ...

  6. html 调用ocx控件

    !DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/x ...

  7. [转]skynet Lua中的协程

    Lua中的协程 http://www.outsky.org/code/lua-coroutine.html Sep 6, 2014 Lua中的协程和其他变量一样,都是第一类值(first-class ...

  8. Android SO动态调试之IDA

    1.上传并启动android_server(IDA的dbgsrv目录) 2.设置端口转发:adb forward tcp:23946 tcp:23946 3.调试模式启动应用:adb shell am ...

  9. MySQL(2)数据库 表的查询操作

    来源参考https://www.cnblogs.com/whgk/p/6149009.html 跟着源博客敲一遍可以加深对数据库的理解,同时对其中一些代码做一些改变,可以验证自己的理解. 本文改动了其 ...

  10. Oracle密码概要文件,密码过期时间180天修改为3天,相关用户密码是否过期

    #Oracle用户密码,概要文件修改测试 #默认的用户使用概要文件,默认概要文件密码过期时间参数180天,修改为3天,对于老的用户来说,是密码过期,还是未发生改变, 对于新用户来说,新设置的密码过期时 ...