注意:邮件发送code中,邮件服务器的申请和配置是比较主要的一个环节,博主这里用的是QQ的邮件服务器。有需要的可以谷歌、百度查下如何开通。

今天看了下Spring的官方文档的邮件发送这一章节。在这里记录一下初次学习成果。详细使用方案如下:

1.  申请邮箱服务器,用于发送邮件。

  

2.  在项目中引入用于支持java邮件发送的jar包

<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.4.7</version>
</dependency> <dependency>
<groupId>javax.activation</groupId>
<artifactId>activation</artifactId>
<version>1.1.1</version>
</dependency>

3.  配置java邮件发送器

邮件发送器配置: applicationContext-mail.xml

   <!-- Define mail sender util bean -->
<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
<property name="protocol" value="#{config['mail.protocol']}" />
<property name="host" value="#{config['mail.host']}" />
<property name="port" value="#{config['mail.port']}" />
<property name="username" value="#{config['mail.username']}" />
<property name="password" value="#{config['mail.password']}" />
<property name="defaultEncoding" value="#{config['mail.default.encoding']}" />
<property name="javaMailProperties">
<props>
<prop key="mail.smtp.auth">#{config['mail.smtp.auth']}</prop>
<prop key="mail.smtp.starttls.enable">#{config['mail.smtp.starttls.enable']}</prop>
<prop key="mail.smtp.timeout">#{config['mail.smtp.timeout']}</prop>
</props>
</property>
</bean>

邮件发送器属性文件

mail.protocol=smtp
mail.host=smtp.qq.com
mail.port=587 mail.username=发件人邮箱
mail.password=邮箱授权
mail.default.encoding=UTF-8 mail.smtp.auth=true
mail.smtp.starttls.enable=true
mail.smtp.timeout=25000

4. 编写邮件发送处理器

接口:

/**
* send text email
*
* @param email recipients email address
* @param subject
* @param content
* @return send mail result
*/
public boolean sendText(String email, String subject, String content); /**
* send email with attachment
*
* @param email
* @param subject
* @param content
* @param attachments
* @return
*/
public boolean sendAttachment(String email, String subject, String content, File...attachments);

1). 发送文本邮件    

MimeMessage mimeMessage = mailSender.createMimeMessage();

// Indicate this is multipart message & indicate encoding
MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true, encoding);
helper.setFrom(form); // set sender
helper.setTo(to); // set recipients
helper.setSubject(subject);
helper.setText(content, true); // Indicate the text included is HTML // Send mail
mailSender.send(mimeMessage);

2). 发送带附件邮件

MimeMessage mimeMessage = mailSender.createMimeMessage();

// Indicate this is multipart message & indicate encoding
MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true, encoding);
helper.setFrom(form); // set sender
helper.setTo(to); // set recipients
helper.setSubject(subject);
helper.setText(content, true); // Indicate the text included is HTML // Indicate with attachment
for (File attachment : attachments) {
  helper.addAttachment(attachment.getName(), attachment);
} // Send mail
mailSender.send(mimeMessage);

Spring邮件发送1的更多相关文章

  1. Spring 邮件发送

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

  2. java spring 邮件发送

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

  3. spring邮件发送

    1,Emaill类: package com.learn.jsp.pojo; /** * 邮件基本信息 * @author kevin * */public class Email { private ...

  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. css导航条等元素位置不变

    在容器元素中插入 position: fixed; 如果是在微信小程序中,直接用bottom或者top等就可以简单的设置导航条了.

  2. 【解高次同余方程】51nod1038 X^A Mod P

    1038 X^A Mod P 基准时间限制:1 秒 空间限制:131072 KB 分值: 320 X^A mod P = B,其中P为质数.给出P和A B,求< P的所有X. 例如:P = 11 ...

  3. 关于Videodownload helper的下载问题

    Videodownload helper是火狐浏览器的一个视频音频嗅探插件, 解压文件的时候处于解压状态还没有解压完的时候不能关闭原来的窗口 所以这个下载软件也同理.没有下载完一个视频之前不能把这个窗 ...

  4. Ameba读写分离_mycat分库分表_redis缓存

    1 数据库的读写分离 1.1 Amoeba实现读写分离 1.1.1 定义 Amoeba是一个以MySQL为底层数据存储,并对应用提供MySQL协议接口的proxy 优点: 配置读写分离时较为简单.配置 ...

  5. 在虚拟机VMware上安装Linux系统教程

    目录: 一.       CentOS的安装 二.       RedHat的安装 三.       VMwaretools的安装 此处提供CentOS和RedHat两个版本的系统安装流程,至于选哪个 ...

  6. spring 文件模板下载多种实现方式

    针对于文件的下载,我们有很多种实现方式.业务场景是这样子的,要实现Excel文件的导入和导出功能,问题对于java的POI操作没有问题,所以实现文件的下载就相对简单,只需要从数据库取出相关的数据,针对 ...

  7. 笔记:Maven 生成项目站点

    Maven 不仅仅时一个自动化构建工具和一个依赖管理工具,他还能够帮助聚合项目信息,促进团队间的交流,POM 可以包含各种项目信息,如项目描述.版本控制系统地址.缺陷跟踪系统地址.许可证信息.开发者信 ...

  8. 18.C++-[ ]操作符使用 、函数对象与普通函数区别(详解)

    在上章17.C++-string字符串类(详解)学习了string类,发现可以通过[ ]重载操作符来访问每个字符. 比如: string s="SAD"; for(int i=0, ...

  9. 排序算法Java实现(选择排序)

    算法描述:对于给定的一组记录,经过第一轮比较后得到最小的记录,然后将该记录与第一个记录的位置进行交换:接着对不包括第一个记录以外的其他记录进行第二轮比较,得到最小的记录并与第二个记录进行位置交换:重复 ...

  10. 图解script的三种加载方式 异步加载顺序

    摘录如下: 可以很清晰的看出: <script>: 脚本的获取和执行是同步的.此过程中页面被阻塞,停止解析. <script defer = "defer"> ...