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. 一分钟使用Docker快速搭建Wordpress

    1. apt install docker.io -y 2. pip install docker-compose 3. vim wordpress_stack.yml version: '3.1' ...

  2. MyBatis insert操作返回主键

    在使用MyBatis做持久层时,insert语句默认是不返回记录的主键值,而是返回插入的记录条数: Dao.java @Override public int insert(T record) { f ...

  3. 如何让jpa 持久化时不校验指定字段

    源文:https://www.toocruel.net/jpa-validate/ 怎么让jpa 持久化时不校验指定字段 本文提供全流程,中文翻译. Chinar 坚持将简单的生活方式,带给世人!(拥 ...

  4. Gym.101908 Brazil Subregional Programming Contest(寒假自训第六场)

    这几天睡眠时间都不太够,室友晚上太会折腾了,感觉有点累,所以昨天的题解也没写,看晚上能不能补起来. B . Marbles 题意:给定N组数(xi,yi),玩家轮流操作,每次玩家可以选择其中一组对其操 ...

  5. CUDA学习

    CUDA(Compute Unified Device Architecture,统一计算架构)是由NVIDIA所推出的一种集成技术,是该公司对于GPGPU的正式名称.通过这个技术,用户可利用NVID ...

  6. hdu4292 Food 最大流

    You, a part-time dining service worker in your college’s dining hall, are now confused with a new pr ...

  7. Tomcat端口被占用解决办法

    1.在cmd运行窗口中输入netstat -ano 查看当前被占用的端口所对应的进城PID: 2.输入命令tasklist,找到进程号PID对应的进程名称(映像名称) 3.打开任务管理器(ctrl+a ...

  8. canvas 使用 isPointInPath() 判断鼠标位置是否在绘制的元素上

    canvas 里绘制的图形不是一个实体 DOM,所以要给每个绘制的图形添加事件操作比给 DOM 添加事件要复杂很多. 所以,我们需要使用一个 canvas 的 isPointInPath(x, y) ...

  9. Go Example--切片

    package main import ( "fmt" ) func main() { //make来初始化一个切片,必须指名切片的长度 s:= make([]string, 3) ...

  10. Js 向表单中添加多个元素

    @{ ViewBag.title = "地图导航"; } @model YT.XWAJ.Public.Application.MapNavigation.Dto.MapNaviga ...