基于Spring的Maven项目实现发送邮件功能的示例

问题分析

现在我们有这样一个需求,就是当我们系统出现问题或bug的时候,让系统通过邮件发送日志信息给相关人员,那么此时,我们就需要实现一个让系统发送邮件的功能

解决步骤

1.pom jar包导入

<dependency>
 <groupId>javax.mail</groupId>
 <artifactId>mail</artifactId>
 <version>1.4.1</version>
</dependency>

2.xml配置

application-mail.xml配置

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"

  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="
   http://www.springframework.org/schema/beans
   http://www.springframework.org/schema/beans/spring-beans.xsd
  ">

<!--配置发送邮件的核心对象-->
<bean id="javaMailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
  <!--邮件发送协议-->
  <property name="host" value="smtp.qq.com"/>

  <!--这里的邮箱是你要发送邮件的邮箱-->
  <property name="username" value="xxxxxx@qq.com"/>
  <!--这里的密码用的是授权码-->
  <property name="password" value="xxxxxxx"/>
  <property name="defaultEncoding" value="UTF-8"/>
  <property name="javaMailProperties">
    <props>
      <!--这里是需要认证才能进行发送,防止随意发送-->
      <prop key="mail.smtp.auth">true</prop>
      <!-- SMTP加密方式:连接到一个TLS保护连接 -->
      <prop key="mail.smtp.starttls.enable">true</prop>
    </props>
  </property>
</bean>
</beans>

3.交给Spring管理

其实就是将发送邮件的xml配置文件引入到spring的配置文件中

<!--配置导入配置文件,位置为当前目录平级的plugs文件夹下面的所有.xml文件-->
<import resource="classpath:plugins/*.xml"/>

这里需要说明一下,classpath后面是跟的我的一个关于实现这些功能专门的配置文件的文件夹,然后通配文件夹里面所有.xml的配置文件,当然,也可以这样写

<import resource="classpath:plugins/applicationContext-mail.xml"/>

这样配置也完全没有任何问题,看个人喜好哈,只是我喜欢把这些相关的配置文件同一放在一个文件夹里面,然后统一一起引入

4.代码实现

需要说明一下,邮件分为两种,一种是普通邮件,即文本信息,不含html代码或附件,另一个种就是包含html代码和附件的,这两种方式相同的是都需要在发送邮件的类里面引入发送邮件的核心对象

@Autowired
private JavaMailSender javaMailSender;

4.1 普通邮件

需要注意的是这里发送邮件的地址必须是applicaiton-mail.xml中所配置的username

  //获取邮箱对象
  SimpleMailMessage message = new SimpleMailMessage();

  //设置由哪个邮箱发出 这里自己定义
  message.setFrom("xxxxxx@qq.com");

  //设置标题
  message.setSubject("测试来了哦");
  //设置发送内容
  message.setText("我来了,你来了没");

  //设置发送地址 -- 发给谁
  message.setTo("xxxx@icloud.com");

  //发送邮件
  javaMailSender.send(message);

4.1 复杂邮件

 //创建一个空邮件对象
  MimeMessage mimeMessage = javaMailSender.createMimeMessage();

  //创建发送复杂邮件的工具类,并传入空邮件,设置是否有附件为true和编码集
  MimeMessageHelper messageHelper = new MimeMessageHelper(mimeMessage, true, "UTF-8");

  //设置发送邮件的邮箱地址,必须和xml里面配置一致
  messageHelper.setFrom("xxxxxx@qq.com");

  //设置邮件标题
  messageHelper.setSubject("复杂邮件标题,就是我");

  //设置邮件里面的普通内容
  messageHelper.setText("我是复杂邮件,我又来了");

  //设置复杂邮件的html代码,并设置是否为html为true
  messageHelper.setText("<h2>我是复杂邮件的html代码,能实现不?</h2>",true);

  //添加发送邮件的附件,是一个图片
  messageHelper.addAttachment("hah.png",new File("img/1.png"));

  //添加附件文件
  messageHelper.addAttachment("mf文件",new File("s/login.jsp"));

  //抄送给谁 这里的参数可以是数组,即多个接收对象
  messageHelper.setCc("mmmm@qq.com");
  //发送给谁 这里的参数可以是数组,即多个接收对象
  messageHelper.setTo("xxxx@icloud.com");

  //发送邮件
  javaMailSender.send(mimeMessage);

5.邮箱配置

注意,大家不要以为现在就可以直接发送了,还需要大家花一毛钱才行,这个钱不是给我哈,也不是给邮箱或浏览器,而是给到运营商,这里就以QQ邮箱为例:

第一步,点击邮箱首页左上角的设置

第二步,选中设置里面的账户设置

第三步,往下翻,翻到POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务

第四步,会让你发送短信,这时候就可以直接发送短信,这里就到了收钱的地方,看吧,不是我收哈

最后,当发送成功之后,就会收到一个授权码,记住它,然后填入你的application-mail.xml里面的password栏中,然后再运行我们的测试方法即可

到此这篇关于基于Spring的Maven项目实现发送邮件功能的示例的文章就介绍到这了,更多相关Spring Maven项目发送邮件内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • spring+maven实现发送邮件功能

    前言 Java编程中发邮件也是常用的.但是原生的jdk自带的发送邮件用起来还是比较麻烦的.spring框架在Java语言中完全是神一样的存在,通过spring框架的邮件工具来发送邮件就非常方便了,本文就主要讲解了Java编程中利用spring提供的邮件工具来发送邮件. 编码实现发送邮件 1.首先我们需要一个Spring框架的环境 2.发送邮件需要的核心依赖包:spring-context-supportXXX.jar.activation-1.1.jar.javax.mail-1.5.2.jar

  • 基于Spring的Maven项目实现发送邮件功能的示例

    问题分析 现在我们有这样一个需求,就是当我们系统出现问题或bug的时候,让系统通过邮件发送日志信息给相关人员,那么此时,我们就需要实现一个让系统发送邮件的功能 解决步骤 1.pom jar包导入 <dependency> <groupId>javax.mail</groupId> <artifactId>mail</artifactId> <version>1.4.1</version> </dependency&g

  • 基于Spring Boot利用 ajax实现上传图片功能

    效果如下: 1.启动类中加入 SpringBoot重写addResourceHandlers映射文件路径 @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { registry.addResourceHandler("/imctemp-rainy/**").addResourceLocations("file:D:/E/"); } 设置静态资源路径 2.   表单

  • 使用spring框架中的组件发送邮件功能说明

    Spring框架是由于软件开发的复杂性而创建的.Spring使用的是基本的JavaBean来完成以前只可能由EJB完成的事情.然而,Spring的用途不仅仅限于服务器端的开发.从简单性.可测试性和松耦合性角度而言,绝大部分Java应用都可以从Spring中受益. 首先进入自己的QQ邮箱,在设置中修改账户信息 然后来至底部 点击开启,再用手机发送对应信息到指定号码,然后点击我已发送 获取授权码 注意提示: 到这里,相信你已经开通了SMTP服务,这样就可以在java code发送邮件了 接下来的是S

  • 基于Laravel5.4实现多字段登录功能方法示例

    前言 最近在一个项目中需要实现一个多字段登录功能,简单来说就是可以使用用户名.邮箱或手机号任意一种方式进行登录.所以本文就来给大家介绍了关于Laravel5.4多字段登录的相关内容,分享出来供大家参考学习,话不多说了,来一起看看详细的介绍吧. 以下内容基于laravel5.4 方法如下: 首先,通过artisan工具生成auth模块 php artisan make:auth 这时候App\Http\Controllers目录下会新增一个Auth目录,该目录下为注册登录相关的控制器,resour

  • Spring Boot中利用JavaMailSender发送邮件的方法示例(附源码)

    快速入门 在Spring Boot的工程中的pom.xml中引入spring-boot-starter-mail依赖: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> </dependency> 如其他自动化配置模块一样,在完成了依赖引入之后,只需要在applicatio

  • 详解基于Spring Boot/Spring Session/Redis的分布式Session共享解决方案

    分布式Web网站一般都会碰到集群session共享问题,之前也做过一些Spring3的项目,当时解决这个问题做过两种方案,一是利用nginx,session交给nginx控制,但是这个需要额外工作较多:还有一种是利用一些tomcat上的插件,修改tomcat配置文件,让tomcat自己去把Session放到Redis/Memcached/DB中去.这两种各有优缺,也都能解决问题. 但是现在项目全线Spring Boot,并不自己维护Tomcat,而是由Spring去启动Tomcat.这样就会有一

  • Spring Boot 发送邮件功能案例分析

    邮件服务简介 邮件服务在互联网早期就已经出现,如今已成为人们互联网生活中必不可少的一项服务.那么邮件服务是怎么工作的呢?如下给出邮件发送与接收的典型过程: 1.发件人使用SMTP协议传输邮件到邮件服务器A: 2.邮件服务器A根据邮件中指定的接收者,投送邮件至相应的邮件服务器B: 3.收件人使用POP3协议从邮件服务器B接收邮件. SMTP(Simple Mail Transfer Protocol)是电子邮件(email)传输的互联网标准,定义在RFC5321,默认使用端口25: POP3(Po

  • 基于spring security实现登录注销功能过程解析

    这篇文章主要介绍了基于spring security实现登录注销功能过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 1.引入maven依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependenc

  • idea将maven项目改成Spring boot项目的方法步骤

    1.添加parent父级依赖 在pom.xml文件中,要首先添加parent父级依赖 <!-- 这个parent是springboot的父级依赖, 它提供相关的starter的maven管理以及版本号管理,还有相关maven插件的公共配置 --> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artif

  • Spring Boot集成JavaMailSender发送邮件功能的实现

    目录 前言 集成步骤 添加依赖 邮件配置信息 邮件配置类 代码实现 发送简单邮件 邮件实体类 业务实现类 测试类 扩展功能 发送Html内容的邮件 业务实现类 测试类 发送带附件邮件 业务实现类 测试类 发送模板邮件 添加依赖 模板内容 业务实现类 测试示例 总结 前言 项目中邮件发送为常用功能之一,例如注册成功后需要发送激活邮件,账号的会员到期提示,每日报表统计等功能都需要自动发送邮件,本文将讲解Spring Boot如何实现邮件发送功能. 集成步骤 添加依赖 <dependency> &l

随机推荐