SpringBoot发送邮件

目录

  • 1. 获取授权码
  • 2. jar包引入
  • 3. 配置application
  • 4. 代码实现

1. 获取授权码

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

SpringBoot发送邮件_第1张图片

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

SpringBoot发送邮件_第2张图片

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

SpringBoot发送邮件_第3张图片

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
# 用户的账号
[email protected]
# 授权密码
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
# 邮件接收者
[email protected],[email protected]

SpringBoot发送邮件_第4张图片

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

\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); } }
  • 普通邮件效果

SpringBoot发送邮件_第5张图片

  • 带附件有样式的效果

SpringBoot发送邮件_第6张图片

你可能感兴趣的:(Springboot,spring,boot,java,spring)