spingboot之Java邮件发送
注意: 该项目的工具类可以直接应用于项目
1、pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1..RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.rocketmq</groupId>
<artifactId>demo</artifactId>
<version>0.0.-SNAPSHOT</version>
<name>demo</name>
<description>Demo project for Spring Boot</description> <properties>
<java.version>1.8</java.version>
</properties> <dependencies>
<!--基础 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<!-- test -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency> <!--web -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency> <!-- activemq -->
<dependency>
<groupId>org.apache.activemq</groupId>
<artifactId>activemq-all</artifactId>
<version>5.15.</version>
</dependency>
<!-- spring-activemq -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-activemq</artifactId>
</dependency> <!-- rocketmq -->
<dependency>
<groupId>org.apache.rocketmq</groupId>
<artifactId>rocketmq-client</artifactId>
<version>4.2.</version>
</dependency>
<!-- fastjson-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.</version>
</dependency> <dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency> </dependencies> <build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build> </project>
注意:pom.xml包含了一些其他的jar依赖,其实是不需要的,只需要有:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
2、application.properties
注意:这个配置文件只是针对QQ邮箱,如果是163或者其他企业邮箱,需要根据需要配置
server.port=
spring.mail.host=smtp.qq.com
spring.mail.username=自己的qq邮箱
spring.mail.password=密码,不是登陆密码,是开启smtp的授权码
spring.mail.default-encoding=UTF-
spring.mail.port=
spring.mail.properties.mail.smtp.socketFactory.class=javax.net.ssl.SSLSocketFactory
spring.mail.properties.mail.debug=true
3、SendMailUtil.java
package com.rocketmq.demo.Utils; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.io.FileSystemResource;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.stereotype.Component;
import javax.mail.internet.MimeMessage;
import java.io.File; @Component
public class SendMailUtil {
@Autowired
JavaMailSender mailSender; /**
* 发送文本消息
* @param senderMail 发送者邮箱
* @param receiveMail 接受者邮箱
* @param subject 主题
* @param text 主体内容
* @return
*/
public String sendMail(String senderMail,String receiveMail,String subject,String text){
try {
final MimeMessage message = this.mailSender.createMimeMessage();
final MimeMessageHelper helper = new MimeMessageHelper(message);
helper.setFrom(senderMail);//发送者邮箱
helper.setTo(receiveMail);//接收者邮箱
helper.setSubject(subject);
helper.setText(text);
this.mailSender.send(message);
return "sucesss";
} catch (Exception ex) {
ex.printStackTrace();
return "error";
}
} /**
* 带附件发送邮件----可多个附件 图片,doc都可以发送
* @param senderMail 发送者邮箱
* @param receiveMail 接受者邮箱
* @param subject 主题
* @param text 主体内容
* @param fileArray 附件路径
* @return
*/
public String sendMailFile(String senderMail,String receiveMail,String subject,String text,String[] fileArray) {
try {
MimeMessage message = mailSender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(message, true);
helper.setFrom(senderMail);
helper.setTo(receiveMail);
helper.setSubject(subject);
helper.setText(text);
//验证文件数据是否为空
if (null != fileArray) {
FileSystemResource file = null;
for (int i = 0; i < fileArray.length; i++) {
//添加附件
file = new FileSystemResource(fileArray[i]);
helper.addAttachment(fileArray[i].substring(fileArray[i].lastIndexOf(File.separator)), file);
}
}
mailSender.send(message);
System.out.println("带附件的邮件发送成功");
return "sucesss";
} catch (Exception e) {
e.printStackTrace();
System.out.println("发送带附件的邮件失败");
return "error";
}
}
}
4、mailController.java
package com.rocketmq.demo.controller; import com.rocketmq.demo.Utils.SendMailUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController; @RestController
@RequestMapping("/mail")
public class mailController {
@Autowired
SendMailUtil sendMailUtil; /**
* 发送文本消息,不带附件
* @return
*/
@ResponseBody
@RequestMapping("/send")
public Object sendEmail() {
String senderMial = "发送者@qq.com";
String receiveMail = "接收者@qq.com";
String subject = "测试主题";
String text = "测试内容";
return sendMailUtil.sendMail(senderMial,receiveMail,subject,text);
} @GetMapping("/sendFile")
public String sendAttachmentsMail() {
String senderMial = "发送者@qq.com";
String receiveMail = "接收者@qq.com";
String subject = "测试主题";
String text = "测试内容";
String[] path={"C:\\Users\\yangwj\\Desktop\\公司\\正式员工详细信息表.xls"};
return sendMailUtil.sendMailFile(senderMial,receiveMail,subject,text,path); } }
总结:
setFrom:指的是发送者的邮箱,要和配置文件的一致。
具体代码:https://github.com/812406210/RocketMQ-and-mail.git
spingboot之Java邮件发送的更多相关文章
- JAVA邮件发送的简单实现
JAVA MAIL是利用现有的邮件账户发送邮件的工具,比如说,我在网易注册一个邮箱账户,通过JAVA Mail的操控,我可以不亲自登录网易邮箱,让程序自动的使用网易邮箱发送邮件.这一机制被广泛的用在注 ...
- java-基于JavaMail的Java邮件发送
1.基于JavaMail的Java邮件发送:简单邮件发送 2.基于JavaMail的Java邮件发送:复杂邮件发送
- 基于JavaMail的Java邮件发送:复杂邮件发送
参考:http://blog.csdn.net/xietansheng/article/details/51722660package com.bfd.ftp.utils;import java.ut ...
- java邮件发送(含附件)
1. [代码]java邮件发送(含附件)疯狂的IT人站长整理的:利用Java发送邮件(含附件)的例子:1.邮件发送的配置propertity文件内容如下:(utils.properties文件放在sr ...
- Java邮件发送与接收原理
一. 邮件开发涉及到的一些基本概念 1.1.邮件服务器和电子邮箱 要在Internet上提供电子邮件功能,必须有专门的电子邮件服务器.例如现在Internet很多提供邮件服务的厂商:sina.sohu ...
- java邮件发送(以163邮箱为例)
1.首先应该开通163邮箱的smtp和pop3,得到授权码 2.其次建立一个web项目,否则需要倒jar包mail.jar 3.创建一个类 4.注意:邮件内容必须为正式话语,否则系统会认为是垃圾邮件而 ...
- java 邮件发送工具类
首先需要下载mail.jar文件,我个人通常是使用maven中心库的那个: <dependency> <groupId>javax.mail</groupId> & ...
- java 邮件发送工具类【来源网络自己已经实际应用】
最近在做一个Java发送邮件的工具类,现在分享一下完整的代码 首先需要java邮件的包javax.mail-1.5.4.jar 之前因为链接给错了,很不好意思,现在重新发一次. 包在这里可以下载htt ...
- 【转】基于JavaMail的Java邮件发送
http://blog.csdn.net/xietansheng/article/details/51673073 http://blog.csdn.net/xietansheng/article/d ...
随机推荐
- Ansible安装部署和常用命令,及其主机清单inventory(二)
1.ansible的安装方式 1.1使用yum源安装 yum install ansible -y 1.2使用rpm包安装 https://dl.fedoraproject.org/pub/epel/ ...
- Hive 函数(六)
Hive函数 Hive中提供了非常丰富的运算符和内置函数支撑,具体操作如下: 1.内置运算符 1.1关系运算符 运算符 类型 说明 A = B 所有原始类型 如果A与B相等,返回TRUE,否则返回 ...
- 08Response
1.功能:设置响应消息 1. 设置响应行 1. 格式:HTTP/1.1 200 ok 2. 设置状态码:setStatus(int sc) 2. 设置响应头:setHeader(String name ...
- 【NOI 2019】同步赛 / 题解 / 感想
非常颓写不动题怎么办…… 写下这篇博客警示自己吧…… 游记 7.16 我并不在广二参加 NOI,而是在距离广二体育馆一公里远的包间打同步赛(其实就是给写不动题找个理由) 上午身体不舒服,鸽了半天才看题 ...
- 局部处理的边缘连接(python+opencv)
rt import cv2 import numpy as np path = "_lo.png" img = cv2.imread(path) gray = cv2.cvtCol ...
- BZOJ1050 [HAOI2006]旅行comf[并查集判图连通性]
★ Description 给你一个无向图,N(N<=500)个顶点, M(M<=5000)条边,每条边有一个权值Vi(Vi<30000).给你两个顶点S和T,求 一条路径,使得路径 ...
- thinkPHP5.0.22初体验---request相关用法
如果浏览器要返回美观排列的json数据,可以安装火狐浏览器的插件 返回XML的数据格式 渲染模板的用法 return $this->fetch('index/index2')效果 扒掉stirp ...
- WDigest
WDigest 是windows在XP系统中应用的,其作用主要是与超文本传输协议(HTTP)和简单的身份验证安全层(SASL)一起交换使用.而Digest与NTLM协议类似,也是挑战认证协议. 简单说 ...
- 【Winfrom-DataTable填充ListView】ListView与DataTable相互转换 .net
1.DataTable转成ListView: 先遍历DataTable的列,把DataTable列名添加到listView列头. 然后外循环添加行,内循环添加列 跟这篇文章是一样的 http://ww ...
- 28.数组中出现次数超过长度一半的数字(python)
题目描述 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字.例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}.由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2. ...