Springboot之邮件篇

1、前言

发送邮件应该是网站的必备拓展功能之一,注册验证,忘记密码或者是给用户发送营销信息。正常我们会用JavaMail相关api来写发送邮件的相关代码,但现在springboot提供了一套更简易使用的封装。

2、依赖

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-mail</artifactId>
    <version>${spring-boot-mail.version}</version>
</dependency>

3、配置

  mail:
    host: smtp.qq.com
    username: aa@qq.com
    password: aaaaa
    port: 25
    protocol: smtp
    default-encoding: utf-8

4、调用方法类 Controller

package com.chongdian.api.controller;

import com.chongdian.api.core.http.ResultResponse;
import com.chongdian.api.service.MailService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RequestMapping("/mail")
@RestController
public class MailController {
    @Autowired
    MailService mailService;

    @RequestMapping("/send")
    public ResultResponse send()
    {
        return new ResultResponse(mailService.sendMail());
    }
}

5、实现接口

package com.chongdian.api.service;

import java.util.Map;

public interface MailService {
    boolean sendMail();
}

6、实现类

package com.chongdian.api.service.impl;

import com.chongdian.api.service.MailService;
import org.springframework.beans.factory.annotation.Autowired;
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.MessagingException;
import javax.mail.internet.MimeMessage;
import java.io.File;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;

@Service
public class MailServiceImpl implements MailService {
    @Autowired
    private JavaMailSender javaMailSender;

    public boolean sendMail(){
        System.out.println(1111);

//        SimpleMailMessage message = new SimpleMailMessage();
//        message.setSubject("这是一封测试邮件");
//        message.setFrom("aaa@qq.com");
//        message.setTo("aaa@qq.com");
//        message.setCc("aa@aa.com");
//        message.setSentDate(new Date());
//        message.setText("这是测试邮件的正文");
//        javaMailSender.send(message);
//
//        return true;

        StringBuilder stringBuilder=new StringBuilder();
        stringBuilder.append("<html><head><title></title></head><body>");
        stringBuilder.append("亲爱的用户 ,您的当前密码是:" );
        stringBuilder.append("</br><a href='https://www.baidu.com/'>访问百度</a></body><html>");
        MimeMessage mimeMessage = javaMailSender.createMimeMessage();
        //multipart模式
        try {
            MimeMessageHelper mimeMessageHelper=new MimeMessageHelper(mimeMessage, true);
            mimeMessageHelper.setTo("aa@qq.com");//收件人邮箱
            mimeMessageHelper.setFrom("aa@qq.com");//发件人邮箱
            //mimeMessageHelper.setCc("luozhen@gaodun.com");
            mimeMessage.setSubject("找回密码");
            //启用html
            mimeMessageHelper.setText(stringBuilder.toString(),true);
            System.out.println(22222);


           // mimeMessageHelper.addAttachment("aaa", new File("C:/Users/Administrator/Desktop/a.txt"));

            javaMailSender.send(mimeMessage);
           return true;
        } catch (MessagingException e) {
            e.printStackTrace();
            System.out.println(333);

            return false;
        }




    }
}

7、结果

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值