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. 微软Power BI 每月功能更新系列——10月Power BI 新功能学习

    Power BI Desktop10月产品功能摘要 本月Power Plus Desktop的更新充满了整个产品的小型和大型改进.一个巨大的更新是Power BI服务支持我们的复合模型和聚合预览.这实 ...

  2. java网络编程ServerSocket类 和Socket类的常用构造方法及其方法

    Socket类Socket(InetAddress address, int port) 创建一个流套接字并将其连接到指定 IP 地址的指定端口号.Socket(String host, int po ...

  3. PHP设计模式之工厂模式(转)

    概念 工厂模式是我们最常用的实例化对象模式,是用工厂方法代替new操作的一种模式. 使用工厂模式的好处是,如果你想要更改所实例化的类名等,则只需更改该工厂方法内容即可,不需逐一寻找代码中具体实例化的地 ...

  4. mbpoll Test FreeModbus TCP Demo

    /********************************************************************************* * mbpoll Test Fre ...

  5. [LeetCode&Python] Problem 409. Longest Palindrome

    Given a string which consists of lowercase or uppercase letters, find the length of the longest pali ...

  6. easyui的DataGrid的单元格添加ProgressBar进度条

    网上的搜到的好多不能用,官方easy-ui使用进度条 <div id="p" class="easyui-progressbar" ></di ...

  7. nginx根据url中的参数进行转发

    在实际项目中,由于https安全策略,我们无法直接跳转到我们想要跳转到的地址 例如 url:https://abc.dc.com/image?url=https://vpic.video.qq.com ...

  8. vim 介绍安装 复制 剪切 粘贴

    1. vim 产生:对于linux 文件的编辑,最初是vi,然后对于其功能的扩展,就产生了vim vim 的安装 yum install vim 2.光标的移动 用得最多的就是方向键上的 上下左右,和 ...

  9. 【HDOJ3567】【预处理bfs+映射+康拓展开hash】

    http://acm.hdu.edu.cn/showproblem.php?pid=3567 Eight II Time Limit: 4000/2000 MS (Java/Others)    Me ...

  10. Python基础之二进制

    引子 首先,计算机一共就能做两件事:计算和通信 那在讲计算机之前,我们先来讲一个故事,大家知道古时候的中国是如何通信的么? 假如,战国时期两个国家要打仗了,我们垒了城墙,每隔一段就有兵镇守,现在有人来 ...