Java发送邮件-工具类-基于springboot

这篇具有很好参考价值的文章主要介绍了Java发送邮件-工具类-基于springboot。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

那么,废话少说,直接上代码。

1. 目录结构

Java发送邮件-工具类-基于springboot

 重点是那几个带mail的,其他文件不用管。

2. pom

<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.0</modelVersion>
  <groupId>com.xxjz</groupId>
  <artifactId>HelloSpringBoot</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>war</packaging>
  
  <parent>
	    <groupId>org.springframework.boot</groupId>
	    <artifactId>spring-boot-starter-parent</artifactId>
	    <version>1.5.6.RELEASE</version>
	</parent>
	<dependencies>
	    <dependency>
	        <groupId>org.springframework.boot</groupId>
	        <artifactId>spring-boot-starter-web</artifactId>
	    </dependency>

	    <!-- https://mvnrepository.com/artifact/javax.mail/mail -->
		<dependency>
		    <groupId>javax.mail</groupId>
		    <artifactId>mail</artifactId>
		    <version>1.4.7</version>
		</dependency>
	    
	</dependencies>
	
</project>

其他文件都是基础的,主要是引入这个mail。 我这个版本比较老旧,更新一下也是可以的。

3. 主要代码

先搞一个邮件实体类

package com.xxjz.sendemail;


import java.io.Serializable;

public class Mail implements Serializable {
	private static final long serialVersionUID = -543077416549260588L;
	private String sendTo;
	private String subject;
	private String text;

	public String getSendTo() {
		return sendTo;
	}
	public void setSendTo(String sendTo) {
		this.sendTo = sendTo;
	}
	public String getSubject() {
		return subject;
	}
	public void setSubject(String subject) {
		this.subject = subject;
	}
	public String getText() {
		return text;
	}
	public void setText(String text) {
		this.text = text;
	}
	public Mail() {
		super();
	}
	
	
}

再搞一个邮箱实体类

package com.xxjz.sendemail;


import java.io.Serializable;

public class MailBox implements Serializable {
	private static final long serialVersionUID = -543077416549260588L;
	private String mailSmtpAuth;          // SMTP?????????
	private String mailSmtpHost;          //SMTP??????
	private String mailSmtpPort;          //?????QQ?????????? ????
	private String mailUser;              //???
	private String mailPassword;          //????
	public String getMailSmtpAuth() {
		return mailSmtpAuth;
	}
	public void setMailSmtpAuth(String mailSmtpAuth) {
		this.mailSmtpAuth = mailSmtpAuth;
	}
	public String getMailSmtpHost() {
		return mailSmtpHost;
	}
	public void setMailSmtpHost(String mailSmtpHost) {
		this.mailSmtpHost = mailSmtpHost;
	}
	public String getMailSmtpPort() {
		return mailSmtpPort;
	}
	public void setMailSmtpPort(String mailSmtpPort) {
		this.mailSmtpPort = mailSmtpPort;
	}
	public String getMailUser() {
		return mailUser;
	}
	public void setMailUser(String mailUser) {
		this.mailUser = mailUser;
	}
	public String getMailPassword() {
		return mailPassword;
	}
	public void setMailPassword(String mailPassword) {
		this.mailPassword = mailPassword;
	}
	public static long getSerialversionuid() {
		return serialVersionUID;
	}
	
	
}

最后再搞一个发送邮件的工具类

package com.xxjz.sendemail;

import java.util.Properties;

import javax.mail.Authenticator;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMessage.RecipientType;



public class SendMail {

	private static volatile SendMail singleton = null;
	private MailBox mailBox = new MailBox();
	private Mail mail = new Mail();


	private SendMail() {
	}

	public static SendMail getSingleton() {
		if (singleton == null) {
			synchronized (SendMail.class) {
				if (singleton == null) {
					singleton = new SendMail();
				}
			}
		}
		return singleton;
	}

	public void setProperties(MailBox b) {
		this.mailBox = b;
	}
	
	public void setMail(Mail b) {
		this.mail = b;
	}

	public void sendQQSmtpEmail() throws Exception {
		// 创建Properties 类用于记录邮箱的一些属性
		final Properties props = new Properties();
		// 表示SMTP发送邮件,必须进行身份验证
		props.put("mail.smtp.auth", mailBox.getMailSmtpAuth());
		// 此处填写SMTP服务器
		props.put("mail.smtp.host", mailBox.getMailSmtpHost());
		// 端口号,QQ邮箱给出了两个端口
		props.put("mail.smtp.port", mailBox.getMailSmtpPort());
		// 此处填写你的账号
		props.put("mail.user", mailBox.getMailUser());
		// 此处的密码就是前面说的16位STMP口令
		props.put("mail.password", mailBox.getMailPassword());

		// 构建授权信息,用于进行SMTP进行身份验证
		Authenticator authenticator = new Authenticator() {

			protected PasswordAuthentication getPasswordAuthentication() {
				// 用户名、密码
				String userName = props.getProperty("mail.user");
				String password = props.getProperty("mail.password");
				return new PasswordAuthentication(userName, password);
			}
		};
		// 使用环境属性和授权信息,创建邮件会话
		Session mailSession = Session.getInstance(props, authenticator);
		// 创建邮件消息
		MimeMessage message = new MimeMessage(mailSession);
		// 设置发件人
		InternetAddress form = new InternetAddress(props.getProperty("mail.user"));
		message.setFrom(form);

		// 设置收件人的邮箱
		InternetAddress to = new InternetAddress(mail.getSendTo());
		message.setRecipient(RecipientType.TO, to);

		// 设置邮件标题
		message.setSubject(mail.getSubject());

		// 设置邮件的内容体
		message.setContent(mail.getText(), "text/html;charset=UTF-8");

		// 最后当然就是发送邮件啦
		Transport.send(message);
	}

}

最后,让我们写一个测试方法来进行测试。

package com.xxjz.sendemail;

 
public class TEST {
	public static void main(String[] args) throws Exception {
		SendMail sendMail = SendMail.getSingleton();
		MailBox mailBox = new MailBox();
		Mail mail = new Mail();
		mailBox.setMailSmtpAuth("true");
		mailBox.setMailSmtpHost("smtp.qq.com");
		mailBox.setMailSmtpPort("587");
		mailBox.setMailUser("xxxx@qq.com");
		mailBox.setMailPassword("gpbutnthtrvrbabe");
		mail.setSendTo("xxxx@qq.com");
		mail.setText("� � * hello world\n");
		mail.setSubject("����test");
		sendMail.setProperties(mailBox);
		sendMail.setMail(mail);
		sendMail.sendQQSmtpEmail();
	}
}

根据自己的邮箱填写相应的参数,就可以测试发送咯

如果大家想要代码,就点击下方链接(为了参加某些活动,设成vip的了)。不过,当然代码全部在上面,不下载也可以。

https://download.csdn.net/download/qqhxmdq/87952277文章来源地址https://www.toymoban.com/news/detail-508346.html

到了这里,关于Java发送邮件-工具类-基于springboot的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • SpringBoot整合Javamail实现邮件发送

    博客主页:踏风彡的博客 博主介绍:一枚在学习的大学生,希望在这里和各位一起学习。 所属专栏:SpringBoot学习笔记 文章创作不易,期待各位朋友的互动,有什么学习问题都可在评论区留言或者私信我,我会尽我所能帮助大家。 ​ 发邮件对于咱们的Java来说是一个基本的功

    2024年02月06日
    浏览(45)
  • SpringBoot,使用JavaMailSender发送邮件(含源码)。

        本文主要讲解使用JavaMailSender发送邮件,并给出对应的参考案例、源码。 1、使用的依赖jar包      JavaMailSender发送邮件,只需要 \\\"spring-boot-starter-mail\\\" jar包就可以。考虑到邮件发送时,使用 Hutool工具生成Excel文件做为附件,因此这里也将 Hutool工具包依赖添加上。 2、 appl

    2024年02月07日
    浏览(44)
  • Springboot 使用JavaMailSender发送邮件 + Excel附件

    目录 1.生成Excel表格 1.依赖设置 2.代码: 2.邮件发送 1.邮件发送功能实现-带附件  2.踩过的坑 1.附件名中文乱码问题 3.参考文章: 需求描述:项目审批完毕后,需要发送邮件通知相关人员,并且要附带数据库表生成的Excel表格,这就要求不光是邮件发送功能,还要临时生成E

    2024年02月07日
    浏览(45)
  • SpringBoot项目整合Redis,Rabbitmq发送、消费、存储邮件

    本文主要是【Rabbitmq】——SpringBoot项目整合Redis,Rabbitmq发送、消费、存储邮件的文章,如果有什么需要改进的地方还请大佬指出⛺️ 🎬作者简介:大家好,我是听风与他🥇 ☁️博客首页:CSDN主页听风与他 🌄每日一句:狠狠沉淀,顶峰相见 测试结果:此时指定邮箱已收到验

    2024年02月04日
    浏览(43)
  • 开源.NetCore通用工具库Xmtool使用连载 - 发送邮件篇

    【Github源码】 《上一篇》 介绍了Xmtool工具库中的随机值类库,今天我们继续为大家介绍其中的邮件发送类库。 发送邮件是系统开发中经常需要的功能,广泛应用于消息通知、异常告警、内容分发等场景;.netcore框架内置提供了发送邮件的方法,但使用时需要创建多个邮件对

    2024年02月06日
    浏览(38)
  • java实现发送邮件

    本文介绍下java实现邮件的发送,意在网站用户评论时能够及时通知站长和用户评论被回复后能够及时通知用户。 下文介绍下具体实现。 java实现 首先引入springboot的邮箱依赖 配置邮箱参数,这里以 qq邮箱 作为示例 此时就差不多了,接下来实现邮箱工具类 此时调用 MailUtil 里

    2024年02月16日
    浏览(48)
  • JAVA之发送邮件

    一、导入依赖 二、发送普通文本 三、发送附件 一、导入依赖 二、发送普通文本 三、发送附件 方法一:通过POI读取数据库的数据,并生成excel,但不保存在本地文件,通过流的方式,作为附件并发送邮件 主要的代码如下: 全部代码如下: 方法二:将导出的数据生成文件,

    2024年02月13日
    浏览(42)
  • Prometheus+Grafana+AlertManager监控SpringBoot项目并发送邮件告警通知

    Docker搭建并配置Prometheus Docker拉取并配置Grafana Docker安装并配置Node-Exporter Docker安装并配置cAdvisor Docker安装并运行Alertmanager 新建项目,引入依赖 新建接口,运行程序 Prometheus配置文件中已添加该项目地址,运行后到Prometheus页面中查看连接情况 成功 引入依赖 新增push接口,用于

    2024年02月11日
    浏览(44)
  • Java发送邮件一行代码解决

    今天博主带来一期超详细的邮件发送实操内容,希望能get到您的点赞!话不多说,直接进入正题。 在实践开始前,这里需要提到 Hutool ,Hutool是一个小而全的Java工具类库,通过静态方法封装,降低相关API的学习成本,提高工作效率的工具类。 那么现在正式进入实战!首先创

    2024年02月02日
    浏览(54)
  • Java Email 实现邮件发送

    Email:电子邮件。 在当今社会有着重要的应用,传统的邮件是通过邮局投递,然后从一个邮局到另一个邮局,最终到达用户的邮箱。 在电子邮件中也有着相似的发送过程:电子邮件是从用户电脑的邮件软件发送到邮件服务器上,经过若干个邮件服务器的中转,最终到达对方邮

    2024年02月03日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包