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. python day07作业

  2. Spring、Commons的BeanUtils.copyProperties用法

    如果两个对象A.B的大部分属性的名字都一样,此时想将A的属性值复制给B,一个一个属性GET\SET代码量太大,可以通过复制属性的方式减小工作量,同时代码看起来更加简洁明了,复制属性可以用Spring或 ...

  3. HDU 6106 17多校6 Classes(容斥简单题)

    Problem Description The school set up three elective courses, assuming that these courses are A, B, ...

  4. G++ C++之区别

    1.遇到精度用C++ 2.G++内存超限,C++过了 其他都用G++

  5. asp.net 后台执行js

    1. 用Response.Write方法 代码如下: Response.Write("<script type='text/javascript'>alert("XXX ...

  6. MySQL 显示表字段及注释等信息

    SHOW TABLES  from resource [FROM db_name] //列出数据库数据表 SHOW TABLE STATUS from resource [FROM db_name]  ...

  7. lvm创建和快照

    查看磁盘 创建分区 新建1G的1分区 新建1G的2分区 新建1G的3分区 查看新建的分区 因标准分区是83交换分区是82做lv是8e所以要改变类型 查看: 保存退出: 创建物理卷pv 将物理卷pv创建 ...

  8. php字符编码转换之gb2312转为utf8(转)

    在php中字符编码转换我们一般会用到iconv与mb_convert_encoding进行操作,但是mb_convert_encoding在转换性能上比iconv要差很多哦.string iconv ...

  9. 20155219 2016-2017-2 《Java程序设计》第10周学习总结

    20155219 2016-2017-2 <Java程序设计>第10周学习总结 教材学习内容总结 教材学习内容总结 Java的网络编程 网络编程 网络编程就是在两个或两个以上的设备(例如计 ...

  10. A Word-Complexity Lexicon and A Neural Readability Ranking Model for Lexical Simplification-paper

    https://github.com/mounicam/lexical_simplification 提供了SimplePPDBpp: SimplePPDB++ resource consisting ...