springboot整合mail邮箱

以QQ邮箱为例

一,获取授权码

1、点击设置–账户–POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务
在这里插入图片描述

2、先开启,后生成授权码,获取所生成的授权密码
在这里插入图片描述

二、代码功能

1、pom.xm依赖

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

2、application.properties

spring.mail.host=smtp.qq.com
#发送者邮箱
spring.mail.username=XXXX@qq.com 
#授权码
spring.mail.password=XXXXX
spring.mail.properties.mail.smtp.ssl.enable=true

3、MailService.java

package com.pbm.utils;
import java.io.File;
import javax.annotation.Resource;
import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;
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;
@Service
public class MailService {
    @Resource
    JavaMailSender javaMailSender;
 
    /**
     * 最简单的邮件发送
     * @param from  发送者
     * @param to    接收者
     * @param subject   标题
     * @param content   内容
     */
	
	  public void sendSimpleMail(String from,String to,String subject,String
	  content){ SimpleMailMessage simpleMailMessage = new SimpleMailMessage();
	  simpleMailMessage.setFrom(from); simpleMailMessage.setTo(to);
	  simpleMailMessage.setSubject(subject); simpleMailMessage.setText(content);
	  javaMailSender.send(simpleMailMessage); }
	    
    /**
     * 带附件的邮件
     * @param from
     * @param to
     * @param subject
     * @param content
     * @param file
     */
    public void sendAttachFileMail(String from, String to, String subject, String content, File file) {
        try{
            MimeMessage mimeMessage = javaMailSender.createMimeMessage();
            MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMessage,true);
            mimeMessageHelper.setFrom(from);
            mimeMessageHelper.setTo(to);
            mimeMessageHelper.setSubject(subject);
            mimeMessageHelper.setText(content);
            mimeMessageHelper.addAttachment(file.getName(),file);
            javaMailSender.send(mimeMessage);
        }catch (Exception e){
            e.printStackTrace();
        }
    }
    
    /**
     * 带图片的邮件
     * @param from
     * @param to
     * @param subject
     * @param content
     * @param srePAth
     * @param resIds
     */
    public void sendMailWithImg(String from,String to,String subject,String content,String [] srePAth,String[]resIds){
        if (srePAth.length!=resIds.length){
            System.out.println("发送失败");
            return;
        }
        try {
            MimeMessage mimeMessage = javaMailSender.createMimeMessage();
            MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMessage, true);
            mimeMessageHelper.setTo(to);
            mimeMessageHelper.setFrom(from);
            mimeMessageHelper.setSubject(subject);
            mimeMessageHelper.setText(content,true);
            for (int i = 0; i < srePAth.length; i++) {
                FileSystemResource res = new FileSystemResource(new File(srePAth[i]));
                mimeMessageHelper.addInline(resIds[i],res);
            }
            javaMailSender.send(mimeMessage);
        } catch (MessagingException e) {
            e.printStackTrace();
        }
    }    
}

4、测试类

package com.pbm;
import java.io.File;

import javax.annotation.Resource;
import org.junit.jupiter.api.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import com.pbm.utils.MailService;
@RunWith(SpringRunner.class)
@SpringBootTest
class Mail1ApplicationTests {
    //注入MailService接口
	@Resource
	MailService mailService;
	 /**
	  * 最简单的邮件发送
	  */
	 @Test void contextLoads() {
	    mailService.sendSimpleMail("XXXX@qq.com","XXXX@qq.com","标题","Hello World"); }
	 
	 /**
	  * 带附件的邮件
	  */
	@Test
	void contextLoads2() {		
		mailService.sendAttachFileMail("XXXX@qq.com","XXXX@qq.com","标题","内容",new File("E:\\Desktop\\erlang_rabbitmq\\rabbitmq-server-3.6.5.exe"));
	}
	
	/**
	 * 带图片的邮件
	 */
	@Test
	public void sendMailWithImg(){
        mailService.sendMailWithImg("XXXX@qq.com","XXXX@qq.com","标题","图片1:<div><img src='cid:p01'/></div>图片2:<div><img src='cid:p02'/></div>",new String[]{"E:\\\\STS\\\\img\\\\123.png","E:\\\\STS\\\\img\\\\6.webp.jpg"},new String[]{"po1","po2"});
    }	
}
  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

花乐晴

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值