SpringBoot发送邮件

1. 获取授权码

  • 以126邮箱为例,点开设置,选择POP3/SMTP/IMAP

在这里插入图片描述

  • 开启POP3/SMTP服务,新增授权密码

在这里插入图片描述

  • 扫码二维码,发送要求的短信内容到指定的号码即可,然后会返回授权密码

在这里插入图片描述

2. jar包引入

implementation group: 'org.springframework.boot', name: 'spring-boot-starter-mail'

3. 配置application

# 默认编码
spring.mail.default-encoding=utf-8
# 邮件服务器的地址
spring.mail.host=smtp.126.com
# 用户的账号
spring.mail.username=111@126.com
# 授权密码
spring.mail.password=xxx
# 邮件服务器的端口
spring.mail.port=465
# SSL 连接配置
spring.mail.properties.mail.smtp.socketFactory.class=javax.net.ssl.SSLSocketFactory
spring.mail.properties.mail.smtp.ssl.enable=true
spring.mail.properties.mail.smtp.ssl.required=true
# 开启debug,查看邮件发送日志
spring.mail.properties.mail.debug=true
# 邮件接收者
mail.userlist=123@qq.com,456@qq.com

在这里插入图片描述

4. 代码实现

  • 包括普通邮件和带附件有样式的邮件
import java.io.File;
import java.util.Date;

import javax.annotation.Resource;
import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

import lombok.extern.slf4j.Slf4j;

/**
 * EmailController
 */
@RestController
@Slf4j
public class EmailController {

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

    @Value("${mail.userlist}")
    private String mailUserList;

    @Resource
    private JavaMailSender javaMailSender;

    /**
     * 普通邮件
     */
    @GetMapping("/simpleMsg")
    public void simpleMsg() {
        SimpleMailMessage simpMsg = new SimpleMailMessage();
        // 发件人
        simpMsg.setFrom(mailUsername);
        // 收件人,多个人使用逗号分割
        simpMsg.setTo(mailUserList.split(","));
        // 主题
        simpMsg.setSubject("Hello world!");
        // 内容
        simpMsg.setText("哈哈哈\n哈哈哈");
        // 发送时间
        simpMsg.setSentDate(new Date());
        javaMailSender.send(simpMsg);
    }

    /**
     * 带附件和内容是html格式的邮件
     * 
     * @throws MessagingException
     */
    @GetMapping("htmlMsg")
    public void htmlMsg() throws MessagingException {
        MimeMessage message = javaMailSender.createMimeMessage();
        MimeMessageHelper helper = new MimeMessageHelper(message, true);
        // 发件人
        helper.setFrom(mailUsername);
        // 收件人,多个人使用逗号分割
        helper.setTo(mailUserList.split(","));
        // 主题
        helper.setSubject("Hello world!");
        // 内容(true表示内容为html)
        helper.setText("<h1>哈哈哈h1</h1>\n哈哈哈", true);
        // 发送时间
        helper.setSentDate(new Date());
        // 附件
        File file = new File("/Users/xxx/Downloads/cceda5ad-df31-4610-9b63-ed0503561934.jpg");
        helper.addAttachment(file.getName(), file);
        javaMailSender.send(message);
    }

}

  • 普通邮件效果

在这里插入图片描述

  • 带附件有样式的效果

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值