QQ邮箱信息发送-springboot

164 阅读1分钟

环境

  • springboot
  • QQ邮箱

实现过程

1、QQ 邮箱通过生成授权码来设置密码 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 2、建立一个springboot工程,添加依赖:

 <!--邮箱依赖-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-mail</artifactId>
        </dependency>

3、配置properties文件

spring.mail.host=smtp.qq.com
spring.mail.username=邮箱名
spring.mail.password=这里填邮箱的授权码
spring.mail.default-encoding=UTF-8
spring.mail.port=465
spring.mail.properties.mail.smtp.socketFactory.class=javax.net.ssl.SSLSocketFactory
spring.mail.properties.mail.debug=true

4、写控制类

@RestController
public class MailController {
    @Autowired
    JavaMailSender mailSender;
    @RequestMapping("/send")
    public String sendEmail(){
        try {
           final MimeMessage mimeMessage = this.mailSender.createMimeMessage();
            final MimeMessageHelper message = new MimeMessageHelper(mimeMessage);
            //设置发送人
            message.setFrom("2926502315@qq.com");
            //发送给谁
            message.setTo("2447432515@qq.com");
            //标题
            message.setSubject("测试");
            //正文
            message.setText("这是一个邮件信息发送功能测试");
        } catch (MessagingException e) {
            e.printStackTrace();
            return "error";
        }
    }
}

发送成功 在这里插入图片描述

批量发送

 @RequestMapping("/sendMore")
    public String sendMoreEmail(){
        list.add("232515@qq.com");
        list.add("2542616@qq.com");
        try {
            final MimeMessage mimeMessage = this.mailSender.createMimeMessage();
            final MimeMessageHelper message = new MimeMessageHelper(mimeMessage);
            //设置发送人
            message.setFrom("2922315@qq.com");
            //发送给谁
            //将集合转成数组
            String[] emails=list.stream().toArray(String[]::new);
            message.setTo(emails);
            //标题
            message.setSubject("测试");
            //正文
            message.setText("这是一个邮件信息发送功能测试");
            this.mailSender.send(mimeMessage);
            return "success send";
        } catch (MessagingException e) {
            e.printStackTrace();
            return "error";
        }
    }

携带附件发送

 @RequestMapping("/sendMoreAndFile")
    public String sendMoreAndFileEmail(){
        list.add("2432515@qq.com");
        list.add("25429616@qq.com");
        list.add("2922315@qq.com");
        try {
            final MimeMessage mimeMessage = this.mailSender.createMimeMessage();
            //携带附件,需要加true参数
            final MimeMessageHelper message = new MimeMessageHelper(mimeMessage,true);
            //设置发送人
            message.setFrom("292315@qq.com");
            //发送给谁
            //将集合转成数组
            String[] emails=list.stream().toArray(String[]::new);
            message.setTo(emails);
            //标题
            message.setSubject("测试");
            //正文
            message.setText("这是一个邮件信息发送功能测试");

            File file=new File("src/main/resources/《Linux就该这么学》正式版电子书.pdf");
            System.out.println("文件是否存在:"+file.exists());
            message.addAttachment(file.getName(),file);
            this.mailSender.send(mimeMessage);
            return "success send";
        } catch (MessagingException e) {
            e.printStackTrace();
            return "error";
        }
    }