springboot整合邮件发送

在做项目的过程中,难免会遇到要发送邮件的情况。这里,将springboot与邮件发送整合一下:

一:添加依赖

<dependency>
       <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-mail</artifactId>
</
dependency>

二:要在配置文件中添加一下配置:

#发送邮件的配置
#使用qq邮箱发送 spring.mail.host=smtp.qq.com
#配置发送者的qq邮箱,也就是:谁来发送 spring.mail.username=12345678@qq.com #开启POP3之后设置的客户端授权码
#用于客户端邮箱验证身份 spring.mail.password=############
#设置编码 spring.mail.default-encoding=UTF-8
#端口 spring.mail.port=465
#启用sll安全验证 spring.mail.properties.mail.smtp.ssl.enable=true

注意:以上配置中的password是要去邮箱那边开启客户端授权生成的码

这里列出两种发送的邮件的类型,

一种是简单邮件,只有一些文字的,代码如下:

 

package springbootSendMail.controller;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
@ResponseBody
@RequestMapping("email")
public class Controllers {
    
    @Autowired
    private JavaMailSender javaMailSender;
    
    /**
     * 发送简单邮件,只是一些文字
     */
    @RequestMapping("simpleEmail")
    public void sendSimpleMail(){
        
        System.out.println("发送邮件中..");
        SimpleMailMessage simpleMailMessage = new SimpleMailMessage();
        simpleMailMessage.setFrom("1417734497@qq.com"); //发送方
        simpleMailMessage.setTo("1417734497@qq.com");//接收方,这里用同一个邮箱方便于测试
        simpleMailMessage.setText("你好"); //发送的内容
        simpleMailMessage.setSubject("主题"); //这个是设置邮件的主题
        javaMailSender.send(simpleMailMessage); // 发送邮件
        
    }
}

 

另一种是邮件中附带文件的,如下:

 

package springbootSendMail.controller;

import java.io.File;

import javax.mail.MessagingException;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;

import org.springframework.beans.factory.annotation.Autowired;
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.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
@ResponseBody
@RequestMapping("email")
public class Controllers {
    
    @Autowired
    private JavaMailSender javaMailSender;
    
    /**
     * 发送简单邮件,只是一些文字
     *//*
    @RequestMapping("simpleEmail")
    public void sendSimpleMail(){
        
        System.out.println("发送邮件中..");
        SimpleMailMessage simpleMailMessage = new SimpleMailMessage();
        simpleMailMessage.setFrom("1417734497@qq.com"); //发送方
        simpleMailMessage.setTo("1417734497@qq.com");//接收方,这里用同一个邮箱方便于测试
        simpleMailMessage.setText("你好"); //发送的内容
        simpleMailMessage.setSubject("主题"); //这个是设置邮件的主题
        javaMailSender.send(simpleMailMessage); // 发送邮件
        
    }*/
    /**
     * 发送带有文件的邮件
     */
    @RequestMapping("fileEmail")
    public void sendFileEmail(){
        
        MimeMessage message = null;
        
        try {
            message = javaMailSender.createMimeMessage();
            MimeMessageHelper helper = new MimeMessageHelper(message,true);
            helper.setFrom("1417734497@qq.com");
            helper.setTo("1417734497@qq.com");
            helper.setSubject("标题:发送html的内容");
            StringBuffer buffer = new StringBuffer();
            buffer.append("<font color = 'red'>大家好</font>");
            buffer.append("<font color = 'black'>,我们是一家人</font>");
            //这个设置cid:image01,要和下面的helper.addInline方法里面的添加要一样
            buffer.append("<img src='cid:image01'/>");
            //第二个参数是确定该内容是否使用html解析
            helper.setText(buffer.toString(), true);
            
            //发送的邮件中含有图片显示
            FileSystemResource imgFile = new FileSystemResource(new File("D:/2.jpeg"));
             helper.addInline("image01", imgFile);
            
            //添加附件
            FileSystemResource filesystemResource = new FileSystemResource(new File("C:/123.pdf"));
            helper.addAttachment("12345", filesystemResource);
            javaMailSender.send(message);
        } catch (MessagingException e) {
            e.printStackTrace();
        }
        
        
        
    }
}

好了,springboot发送邮件到此告一段落,如有不足之处请指出

posted @ 2020-02-19 20:03  陆某人  阅读(228)  评论(0编辑  收藏  举报