【Spring Boot】发送邮件功能

编程入门 行业动态 更新时间:2024-10-10 06:19:05

【Spring Boot】<a href=https://www.elefans.com/category/jswz/34/1770428.html style=发送邮件功能"/>

【Spring Boot】发送邮件功能

发送邮件功能

    • 一.pom.xml文件添加邮件依赖
    • 二.发送邮件信息
      • (1)固定配置在application.yml
      • (2)发送邮箱配成活
      • (3)底层发送邮件方法
      • (4)QQ邮箱开通smtp服务
      • (5)网易邮箱开通smtp服务

一.pom.xml文件添加邮件依赖

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

二.发送邮件信息

有两种方式配置:固定配置在application.yml中,或者将发送邮箱配成活的参数
注意:发送者必须开通了smtp服务,(4)和(5)目录中介绍开通smtp服务

备注:host配置
网易邮箱:smtp.163
QQ邮箱:smtp.qq

(1)固定配置在application.yml

在application.yml中配置

spring:mail:host: smtp.163 #邮件服务器地址port: 465 #端口号username: 邮箱地址password: 开通smtp服务获取的授权码default-encoding: UTF-8 #默认编码格式properties:mail:debug: true #启动debug调试smtp:auth: truessl:enable: truestarttls:enable: truerequired: true

发送邮件接口

@RequiredArgsConstructor
@RestController
public class SendEmailController
{
private final JavaMailSender mailSender;
// 发送邮件接口
public void sendEmail() {try {SendMail.sendEmail(mailSender, username, dto.getContent(), dto.getFileName(), dto.getReUserMail());} catch (Exception e) {e.printStackTrace();}}  
}

(2)发送邮箱配成活

不需要在application.yml中配置信息

public class SendEmailController {public void sendEmail() {// 邮箱配置String host = "smtp.163";Integer port = 465;String username = "邮箱";String password = "授权密码";String content = "发送内容";String fileName = "发送主题";String reUserMail = "收件人";try {SendMail.sendEmail(host, port, username, password, content, fileName, reUserMail);} catch (Exception e) {e.printStackTrace();}}
}

(3)底层发送邮件方法

import lombok.extern.slf4j.Slf4j;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.JavaMailSenderImpl;
import org.springframework.mail.javamail.MimeMessageHelper;
import javax.mail.internet.*;
import java.util.Properties;@Slf4j
public class SendMail {/**** @param host 邮件服务器地址* @param port 端口号* @param username 发送者邮箱* @param password 授权密码* @param content 内容* @param fileName 主题* @param reUserMail 收件人邮箱*/public static void sendEmail(String host, int port, String username, String password, String content, String fileName, String reUserMail){JavaMailSenderImpl mailSender = new JavaMailSenderImpl();mailSender.setHost(host);mailSender.setPort(port);mailSender.setUsername(username);mailSender.setPassword(password);mailSender.setDefaultEncoding("utf-8");Properties javaMailProperties = mailSender.getJavaMailProperties();javaMailProperties.setProperty("mail.smtp.auth", "true");javaMailProperties.setProperty("mail.smtp.ssl.enable", "true");javaMailProperties.setProperty("mail.smtp.starttls.enable", "true");javaMailProperties.setProperty("mail.smtp.starttls.required", "true");javaMailProperties.setProperty("mail.debug", "true");//启用调试javaMailProperties.setProperty("mail.smtp.timeout", "3000"); //设置超时时间3秒mailSender.setJavaMailProperties(javaMailProperties);sendEmail(mailSender, username, content, fileName, reUserMail);}/*** 发送邮件内容* @param mailSender* @param sender 发送人邮箱* @param content 发送内容* @param fileName 主题* @param reUserMail 收件人邮箱*/public static void sendEmail(JavaMailSender mailSender, String sender, String content, String fileName, String reUserMail) {MimeMessage message = null;try {message = mailSender.createMimeMessage();MimeMessageHelper helper = new MimeMessageHelper(message, true);/**发送者邮箱,即为开通了smtp服务的邮箱*/helper.setFrom(sender);/**发送到的邮箱*/helper.setTo(reUserMail);helper.setSubject("主题:" + fileName);helper.setText("带附件的邮件内容");helper.setText(content, true);mailSender.send(message);} catch (Exception e){e.printStackTrace();}}}

(4)QQ邮箱开通smtp服务

在邮箱->设置->账号->开通POP3/SMTP服务


(5)网易邮箱开通smtp服务

邮箱->设置->POP3/SMTP/IMAP->开通POP3/SMTP和IMAP/SMTP服务

更多推荐

【Spring Boot】发送邮件功能

本文发布于:2023-11-17 10:39:01,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1642088.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:发送邮件   功能   Spring   Boot

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!