第十二篇:springboot集成mail,发送邮件

版权声明:如需转载,请备注出处 https://blog.csdn.net/u013783065/article/details/81565044

在我们开发过程中,我们总是会遇到需要发送邮件的时候,所以我在这里总结了一些常用的发送邮件的方法。

创建工程:

完整pom如下:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>

	<groupId>com.wujie</groupId>
	<artifactId>springboot-jms</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<packaging>jar</packaging>

	<name>springboot-jms</name>
	<description>Demo project for Spring Boot</description>

	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>2.0.4.RELEASE</version>
		<relativePath/> <!-- lookup parent from repository -->
	</parent>

	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
		<java.version>1.8</java.version>
	</properties>

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

		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
		</dependency>
	</dependencies>

	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>
		</plugins>
	</build>


</project>

添加配置:

这里我使用qq邮箱进行测试,下方的密码是需要使用qq独有的授权码,关于怎么获取授权码请移步:qq邮箱授权码获取

server:
  port: 80
spring:
  mail:
    host: smtp.qq.com
    username: [email protected]
    password: 使用自己的邮箱密码
    default-encoding: UTF-8
    protocol: smtp

新建邮件发送工具类:

@Component
public class JavaMailUtil {
    @Autowired
    private JavaMailSenderImpl javaMailSender;

    /**
     * 发送简单文本邮件
     * @param title
     * @param content
     * @param from
     * @param to
     * @return
     */
    public String sendTxtMail(String title,String content,String from,String[] to){
        SimpleMailMessage simpleMailMessage = new SimpleMailMessage();
        simpleMailMessage.setTo(to);
        simpleMailMessage.setFrom(from);
        simpleMailMessage.setSubject(title);
        simpleMailMessage.setText(content);
        javaMailSender.send(simpleMailMessage);
        System.out.println("邮件已经发送");
        return "邮件已经发送";
    }

    /**
     * 发送html
     * @param title
     * @param content
     * @param from
     * @param to
     * @return
     */
    public String sendHtmlMail(String title,String content,String from,String[] to){
        MimeMessage mimeMailMessage = javaMailSender.createMimeMessage();
        MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMailMessage);
        try {
            mimeMessageHelper.setTo(to);
            mimeMessageHelper.setFrom(from);
            mimeMessageHelper.setSubject(title);
            StringBuilder sb = new StringBuilder();
            sb.append("<html><head></head>");
            sb.append("<body><h1>spring 邮件测试</h1><p>hello ! spring mail</p>");
            sb.append("<span style='color:red'>test</span></html>");
            mimeMessageHelper.setText(sb.toString(),true);
            javaMailSender.send(mimeMailMessage);
            System.out.println("邮件发送成功");
            return "邮件发送成功";
        } catch (MessagingException e) {
            e.printStackTrace();
        }
        return "";
    }

    /**
     * 发送图片
     * @param title
     * @param content
     * @param from
     * @param to
     * @return
     */
    public String sendAttachedImageMail(String title,String content,String from,String[] to){
        try {
            MimeMessage mimeMailMessage = javaMailSender.createMimeMessage();
            MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMailMessage,true);
            mimeMessageHelper.setTo(to);
            mimeMessageHelper.setFrom(from);
            mimeMessageHelper.setSubject(title);
            StringBuilder sb = new StringBuilder();
            sb.append("<html><head></head>");
            sb.append("<body><h1>spring 邮件测试</h1><p>hello ! spring mail</p>");
            sb.append("<span style=\"color:red\">test</span>");
            sb.append("<img src=\"cid:imageId\"/>");
            sb.append("</html>");
            mimeMessageHelper.setText(sb.toString(),true);
            FileSystemResource img = new FileSystemResource(new File("E:/1.png"));
            mimeMessageHelper.addInline("imageId",img);
            javaMailSender.send(mimeMailMessage);
            System.out.println("邮件发送成功");
            return "邮件发送成功";
        } catch (MessagingException e) {
            e.printStackTrace();
        }
        return "";
    }

    /**
     * 发送附件
     * @param title
     * @param content
     * @param from
     * @param to
     * @return
     */
    public String sendAttendedFileMail(String title,String content,String from,String[] to){
        try {
            MimeMessage mimeMailMessage = javaMailSender.createMimeMessage();
            MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMailMessage,true);
            mimeMessageHelper.setTo(to);
            mimeMessageHelper.setFrom(from);
            mimeMessageHelper.setSubject(title);
            StringBuilder sb = new StringBuilder();
            sb.append("<html><head></head>");
            sb.append("<body><h1>spring 邮件测试</h1><p>hello ! spring mail</p>");
            sb.append("<span style=\"color:red\">test</span>");
            sb.append("<img src=\"cid:imageId\"/>");
            sb.append("</html>");
            mimeMessageHelper.setText(sb.toString(),true);
            FileSystemResource img = new FileSystemResource(new File("E:/1.png"));
            mimeMessageHelper.addInline("imageId",img);
            mimeMessageHelper.addAttachment("imageId.png",img);
            javaMailSender.send(mimeMailMessage);
            System.out.println("邮件发送成功");
            return "邮件发送成功";
        } catch (MessagingException e) {
            e.printStackTrace();
        }
        return "";
    }
}

新建一个controller:

@RestController
@RequestMapping("mail")
public class JavaMailController {
    @Autowired
    private JavaMailUtil javaMailUtil;

    @RequestMapping("sendTxt")
    public String sendTxt(String title,String content,String from,String[] to ){
        String sendTxtMail = javaMailUtil.sendTxtMail(title, content, from, to);
        return sendTxtMail;
    }

    @RequestMapping("sendHtml")
    public String sendHtml(String title,String content,String from,String[] to ){
        String sendHtmlMail = javaMailUtil.sendHtmlMail(title, content, from, to);
        return sendHtmlMail;
    }

    @RequestMapping("sendImg")
    public String sendImg(String title,String content,String from,String[] to ){
        String sendAttachedImageMail = javaMailUtil.sendAttachedImageMail(title, content, from, to);
        return sendAttachedImageMail;
    }
    @RequestMapping("sendFile")
    public String sendFile(String title,String content,String from,String[] to ){
        String sendAttendedFileMail = javaMailUtil.sendAttendedFileMail(title, content, from, to);
        return sendAttendedFileMail;
    }
}

以上方法经测试过,没有问题。入遇到问题可以关注我的公众号。我们一起解决。

源码地址:springboot-jms

猜你喜欢

转载自blog.csdn.net/u013783065/article/details/81565044
今日推荐