Spring Boot项目中如何集成邮件发送功能?

2026-06-08 17:54:03 201阅读 0评论 SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计997个文字,预计阅读时间需要4分钟。

本文主要介绍了如何将邮件支持添加到Spring Boot应用中,通过示例代码简要展示其使用方法。对于希望学习或工作的朋友,具有一定的参考价值。以下是一段示例代码:

Spring Boot项目中如何集成邮件发送功能?

java@Configurationpublic class MailConfig {

@Value(${spring.mail.host}) private String mailHost;

Spring Boot项目中如何集成邮件发送功能?

@Value(${spring.mail.port}) private Integer mailPort;

@Value(${spring.mail.username}) private String mailUsername;

@Value(${spring.mail.password}) private String mailPassword;

@Bean public JavaMailSender javaMailSender() { JavaMailSenderImpl mailSender=new JavaMailSenderImpl(); mailSender.setHost(mailHost); mailSender.setPort(mailPort); mailSender.setUsername(mailUsername); mailSender.setPassword(mailPassword); return mailSender; }}

java@Servicepublic class MailService {

@Autowired private JavaMailSender mailSender;

public void sendSimpleMail(String to, String subject, String text) { SimpleMailMessage message=new SimpleMailMessage(); message.setTo(to); message.setSubject(subject); message.setText(text); mailSender.send(message); }}

java@RestController@RequestMapping(/mail)public class MailController {

@Autowired private MailService mailService;

@PostMapping(/send) public ResponseEntity sendMail(@RequestParam String to, @RequestParam String subject, @RequestParam String text) { mailService.sendSimpleMail(to, subject, text); return ResponseEntity.ok(邮件发送成功!); }}

通过以上代码,可以实现向指定邮箱发送简单邮件的功能。希望对您有所帮助。

这篇文章主要介绍了spring boot如何加入mail邮件支持,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

一、添加依赖

<!-- 邮件整合 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> </dependency>

二、添加mail.properties配置文件

#设置邮箱主机 spring.mail.host=smtp.qq.com #设置用户名 spring.mail.username=xxxxxxx #设置密码 #QQ邮箱->设置->账户->POP3/SMTP服务:开启服务后会获得QQ的授权码 spring.mail.password=xxxxxxxxxxxxxxxx #端口 spring.mail.port=465 #协议 #spring.mail.protocol=smtp #设置是否需要认证,如果为true,那么用户名和密码就必须的, #如果设置false,可以不设置用户名和密码,当然也得看你的对接的平台是否支持无密码进行访问的。 spring.mail.properties.mail.smtp.auth=true #STARTTLS[1] 是对纯文本通信协议的扩展。它提供一种方式将纯文本连接升级为加密连接(TLS或SSL),而不是另外使用一个端口作加密通信。 spring.mail.properties.mail.smtp.starttls.enable=true spring.mail.properties.mail.smtp.starttls.required=true spring.mail.properties.mail.smtp.socketFactory.class=javax.net.ssl.SSLSocketFactory

三、添加MailConfig.java

package com.spring.config; import java.io.File; import java.util.List; import java.util.Map; import javax.annotation.Resource; import javax.mail.MessagingException; import javax.mail.internet.MimeMessage; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Configuration; import org.springframework.core.io.FileSystemResource; import org.springframework.mail.SimpleMailMessage; import org.springframework.mail.javamail.JavaMailSenderImpl; import org.springframework.mail.javamail.MimeMessageHelper; @Configuration public class MailConfig { @Resource private JavaMailSenderImpl mailSender; @Value("${spring.mail.username}") private String username; /** * 发送纯文本形式的email * * @param toEmail 收件人邮箱 * @param title 邮件标题 * @param content 邮件内容 */ public void sendTextMail(String toEmail, String title, String content) { SimpleMailMessage msg = new SimpleMailMessage(); msg.setFrom(username); msg.setTo(toEmail); msg.setSubject(title); msg.setText(content); mailSender.send(msg); } /** * 发送带有html的内容 * * @param toEmail 收件人邮箱 * @param title 邮件标题 * @param htmlContent 邮件内容 */ public void sendHtmlMail(String toEmail, String title, String htmlContent) throws MessagingException { MimeMessage msg = mailSender.createMimeMessage(); MimeMessageHelper helper = new MimeMessageHelper(msg, false, "utf-8"); helper.setFrom(username); helper.setTo(toEmail); helper.setSubject(title); helper.setText(htmlContent, true); mailSender.send(msg); } /** * 添加附件的email发送 * * @param toEmail 收件人地址 * @param title 邮件标题 * @param content 文本内容 * @param aboutFiles 附件信息 每个子项都是一个文件相关信息的map Map<String,String>: 1.filePath * 2.fileName * @throws Exception 异常 */ public void sendAttachmentMail(String toEmail, String title, String content, List<Map<String, String>> aboutFiles) throws Exception { MimeMessage msg = mailSender.createMimeMessage(); MimeMessageHelper helper = new MimeMessageHelper(msg, true, "utf-8"); helper.setFrom(username); helper.setTo(toEmail); helper.setSubject(title); helper.setText(content); FileSystemResource resource = null; for (Map<String, String> file : aboutFiles) { resource = new FileSystemResource(file.get("filePath")); if (resource.exists()) {// 是否存在资源 File attachmentFile = resource.getFile(); helper.addAttachment(file.get("fileName"), attachmentFile); } } mailSender.send(msg); } }

四、使用MailConfig

@Autowired private MailConfig mailConfig;

使用MailConfig里面的方法发送即可以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持易盾网络。

本文共计997个文字,预计阅读时间需要4分钟。

本文主要介绍了如何将邮件支持添加到Spring Boot应用中,通过示例代码简要展示其使用方法。对于希望学习或工作的朋友,具有一定的参考价值。以下是一段示例代码:

Spring Boot项目中如何集成邮件发送功能?

java@Configurationpublic class MailConfig {

@Value(${spring.mail.host}) private String mailHost;

Spring Boot项目中如何集成邮件发送功能?

@Value(${spring.mail.port}) private Integer mailPort;

@Value(${spring.mail.username}) private String mailUsername;

@Value(${spring.mail.password}) private String mailPassword;

@Bean public JavaMailSender javaMailSender() { JavaMailSenderImpl mailSender=new JavaMailSenderImpl(); mailSender.setHost(mailHost); mailSender.setPort(mailPort); mailSender.setUsername(mailUsername); mailSender.setPassword(mailPassword); return mailSender; }}

java@Servicepublic class MailService {

@Autowired private JavaMailSender mailSender;

public void sendSimpleMail(String to, String subject, String text) { SimpleMailMessage message=new SimpleMailMessage(); message.setTo(to); message.setSubject(subject); message.setText(text); mailSender.send(message); }}

java@RestController@RequestMapping(/mail)public class MailController {

@Autowired private MailService mailService;

@PostMapping(/send) public ResponseEntity sendMail(@RequestParam String to, @RequestParam String subject, @RequestParam String text) { mailService.sendSimpleMail(to, subject, text); return ResponseEntity.ok(邮件发送成功!); }}

通过以上代码,可以实现向指定邮箱发送简单邮件的功能。希望对您有所帮助。

这篇文章主要介绍了spring boot如何加入mail邮件支持,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

一、添加依赖

<!-- 邮件整合 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> </dependency>

二、添加mail.properties配置文件

#设置邮箱主机 spring.mail.host=smtp.qq.com #设置用户名 spring.mail.username=xxxxxxx #设置密码 #QQ邮箱->设置->账户->POP3/SMTP服务:开启服务后会获得QQ的授权码 spring.mail.password=xxxxxxxxxxxxxxxx #端口 spring.mail.port=465 #协议 #spring.mail.protocol=smtp #设置是否需要认证,如果为true,那么用户名和密码就必须的, #如果设置false,可以不设置用户名和密码,当然也得看你的对接的平台是否支持无密码进行访问的。 spring.mail.properties.mail.smtp.auth=true #STARTTLS[1] 是对纯文本通信协议的扩展。它提供一种方式将纯文本连接升级为加密连接(TLS或SSL),而不是另外使用一个端口作加密通信。 spring.mail.properties.mail.smtp.starttls.enable=true spring.mail.properties.mail.smtp.starttls.required=true spring.mail.properties.mail.smtp.socketFactory.class=javax.net.ssl.SSLSocketFactory

三、添加MailConfig.java

package com.spring.config; import java.io.File; import java.util.List; import java.util.Map; import javax.annotation.Resource; import javax.mail.MessagingException; import javax.mail.internet.MimeMessage; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Configuration; import org.springframework.core.io.FileSystemResource; import org.springframework.mail.SimpleMailMessage; import org.springframework.mail.javamail.JavaMailSenderImpl; import org.springframework.mail.javamail.MimeMessageHelper; @Configuration public class MailConfig { @Resource private JavaMailSenderImpl mailSender; @Value("${spring.mail.username}") private String username; /** * 发送纯文本形式的email * * @param toEmail 收件人邮箱 * @param title 邮件标题 * @param content 邮件内容 */ public void sendTextMail(String toEmail, String title, String content) { SimpleMailMessage msg = new SimpleMailMessage(); msg.setFrom(username); msg.setTo(toEmail); msg.setSubject(title); msg.setText(content); mailSender.send(msg); } /** * 发送带有html的内容 * * @param toEmail 收件人邮箱 * @param title 邮件标题 * @param htmlContent 邮件内容 */ public void sendHtmlMail(String toEmail, String title, String htmlContent) throws MessagingException { MimeMessage msg = mailSender.createMimeMessage(); MimeMessageHelper helper = new MimeMessageHelper(msg, false, "utf-8"); helper.setFrom(username); helper.setTo(toEmail); helper.setSubject(title); helper.setText(htmlContent, true); mailSender.send(msg); } /** * 添加附件的email发送 * * @param toEmail 收件人地址 * @param title 邮件标题 * @param content 文本内容 * @param aboutFiles 附件信息 每个子项都是一个文件相关信息的map Map<String,String>: 1.filePath * 2.fileName * @throws Exception 异常 */ public void sendAttachmentMail(String toEmail, String title, String content, List<Map<String, String>> aboutFiles) throws Exception { MimeMessage msg = mailSender.createMimeMessage(); MimeMessageHelper helper = new MimeMessageHelper(msg, true, "utf-8"); helper.setFrom(username); helper.setTo(toEmail); helper.setSubject(title); helper.setText(content); FileSystemResource resource = null; for (Map<String, String> file : aboutFiles) { resource = new FileSystemResource(file.get("filePath")); if (resource.exists()) {// 是否存在资源 File attachmentFile = resource.getFile(); helper.addAttachment(file.get("fileName"), attachmentFile); } } mailSender.send(msg); } }

四、使用MailConfig

@Autowired private MailConfig mailConfig;

使用MailConfig里面的方法发送即可以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持易盾网络。