美文网首页
springboot 发送邮件 22

springboot 发送邮件 22

作者: 张力的程序园 | 来源:发表于2020-04-08 21:51 被阅读0次

1、环境约束

  • win10 64位操作系统
  • idea2018.1.5
  • maven-3.0.5
  • jdk-8u162-windows-x64

2、前提约束

3、操作步骤

  • 配置application.properties
#邮箱服务器地址,163:smtp.163.com;126:smtp.126.com ;qq:smtp.qq.com 
spring.mail.host=smtp.163.com
#用户名
spring.mail.username=langli2049@163.com
#开启POP3之后设置的客户端授权码,注意这不是密码,是在登录邮箱管理界面之后获取的授权码
spring.mail.password=IOINRNXXXXXCYDGQ
spring.mail.default-encoding=UTF-8
  • 在pom.xml中加入依赖:
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-mail</artifactId>
        </dependency>
  • 在主启动类统计目录下创建MailService.java

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.core.io.FileSystemResource;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.stereotype.Service;

import javax.mail.internet.MimeMessage;
import java.io.File;
import java.util.Map;

@Service
public class MailService {
    @Autowired
    private JavaMailSender mailSender;

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

    /**
     * 发送普通邮件
     */
    public void sendSimpleMailMessge(String to, String subject, String content) throws Exception {
        SimpleMailMessage message = new SimpleMailMessage();
        message.setFrom(sender);
        message.setTo(to);
        message.setSubject(subject);
        message.setText(content);
        mailSender.send(message);
    }

    /**
     * 发送 HTML 邮件
     */
    public void sendMimeMessge(String to, String subject, String content) throws Exception {
        MimeMessage message = mailSender.createMimeMessage();
        //true表示需要创建一个multipart message
        MimeMessageHelper helper = new MimeMessageHelper(message, true);
        helper.setFrom(sender);
        helper.setTo(to);
        helper.setSubject(subject);
        helper.setText(content, true);
        mailSender.send(message);
    }

    /**
     * 发送带附件的邮件
     */
    public void sendMimeMessge(String to, String subject, String content, String filePath) throws Exception {
        MimeMessage message = mailSender.createMimeMessage();
        //true表示需要创建一个multipart message
        MimeMessageHelper helper = new MimeMessageHelper(message, true);
        helper.setFrom(sender);
        helper.setTo(to);
        helper.setSubject(subject);
        helper.setText(content, true);

        FileSystemResource file = new FileSystemResource(new File(filePath));
        String fileName = file.getFilename();
        helper.addAttachment(fileName, file);

        mailSender.send(message);
    }

    /**
     * 发送带多个静态文件的邮件
     */
    public void sendMimeMessge(String to, String subject, String content, Map<String, String> rscIdMap) throws Exception {
        MimeMessage message = mailSender.createMimeMessage();
        //true表示需要创建一个multipart message
        MimeMessageHelper helper = new MimeMessageHelper(message, true);
        helper.setFrom(sender);
        helper.setTo(to);
        helper.setSubject(subject);
        helper.setText(content, true);

        for (Map.Entry<String, String> entry : rscIdMap.entrySet()) {
            FileSystemResource file = new FileSystemResource(new File(entry.getValue()));
            helper.addInline(entry.getKey(), file);
        }
        mailSender.send(message);
    }
}
  • 在主启动类同级目录下创建MailController.java
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.annotation.Resource;

@RestController
public class MailController {

    @Resource
    MailService mailService;

    @GetMapping("/sendemail")
    public String send1() throws Exception {
        mailService.sendSimpleMailMessge("langli2049@163.com", "hello", "ceshi");
        return "ok";
    }

    @GetMapping("/sendhtmlemail")
    public String send2() throws Exception {
        mailService.sendMimeMessge("langli2049@163.com", "hello", "<html><h1>1234</h1></html>");
        return "ok";
    }

    @GetMapping("/sendhfilemail")
    public String send3() throws Exception {
        mailService.sendMimeMessge("langli2049@163.com", "hello", "<html><h1>1234</h1></html>", "D:\\logback.log");
        return "ok";
    }
}

相关文章

  • springboot 发送邮件 22

    1、环境约束 win10 64位操作系统 idea2018.1.5 maven-3.0.5 jdk-8u162-w...

  • SpringBoot邮件发送

    这篇文章介绍springboot的邮件发送。 由于很简单就没有分出server和imp之类,只是在controll...

  • SpringBoot 发送邮件

    # 依赖 # 配置 # 发送简单文本邮件 # 发送html邮件 # 使用邮件模板发送邮件 添加依赖 配置 新建ht...

  • springboot 发送邮件

    邮件的依赖: 定义邮件的服务类: 这里我们实例化MailService 测试一下: test-applicatio...

  • SpringBoot发送邮件

    简述 在日常工作开发中,发送邮件功能有时需要我们去开发使用,这里首先介绍以下与发送接受邮件相关的一些协议: 发送邮...

  • SpringBoot 发送邮件

    学习目标 快速掌握邮件业务类的核心逻辑和企业邮件的日常服务。 快速查阅 专题阅读:《SpringBoot 布道系列...

  • springBoot 发送邮件

    全局配置文件: # JavaMailsender 邮件发送的配置 spring . mail .host-smtp...

  • SpringBoot发送邮件

    maven配置 application.yml配置 邮件配置工具类 调用发送邮件 成功! 关注公众号回复“书籍”就...

  • SpringBoot 发送邮件

    1.发送邮件之前的准备 申请一个邮箱账号 ,我这里使用的是网易邮箱 修改网易邮箱的设置 进去之后默认是关闭的需要开...

  • SpringBoot发送邮件

    在小明经历的多个项目开发中,总会遇到消息通知的场景,比如某个广告主提交一个表单,我们要通知提醒运营人员及时查看。 ...

网友评论

      本文标题:springboot 发送邮件 22

      本文链接:https://www.haomeiwen.com/subject/qqkzphtx.html