【系统学习SpringBoot】SpringBoot初遇邮件服务

本文介绍如何使用SpringBoot实现邮件服务,包括配置邮件服务、发送简单邮件、发送HTML格式邮件、发送带附件的邮件及发送带图片的邮件等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本篇博客主要记录博主学习SpringBoot邮件服务,主要内容有
【如何发送简单邮件】【发送html格式邮件】【发送带附件的邮件】【发送代图片的邮件】



一、SpringBoot配置邮件服务

【1】添加依赖

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

【2】添加配置

spring:
    mail:
       host: smtp.exmail.qq.com//腾讯的邮箱发送地址,【网易】的““mtp.qiye.163.com”
       username: *****@zslstudy.cn//博主使用的是腾讯企业邮箱,邮箱
       password: *********//这个是授权码不是登陆密码
       default-encoding: UTF-8



配置就这这两步,,下面详细说一下,,这个授权码的问题


【网易邮箱】,可以通过如下图获取授权码(博主试了,居然每次都设置失败,好伤心)
这里写图片描述


【腾讯企业邮箱】可通过如下方式获取授权码(亲测可用,很完美)
这里写图片描述
这里写图片描述


【qq邮箱】和腾讯企业邮箱差得有点远,,题主测了几次都不给力
生成方式和企业的类似,,下面是官方的教程(博主测了,没卵用,有兴趣的可以自己测一下,可能是博主哪里没设置好)

http://service.mail.qq.com/cgi-bin/help?subtype=1&&no=1001256&&id=28



二、SpringBoot发送邮件
博主为了测试方便直接卸载Controller里了如下:


【发送简单邮件】

    @RequestMapping("sendmail")
    public String sendMail() {
        try {
            MimeMessage mimeMessage = this.mailSender.createMimeMessage();
            MimeMessageHelper message = new MimeMessageHelper(mimeMessage);
            message.setFrom("小鼠标@zslstudy.cn");
            message.setTo("********@163.com");
            message.setSubject("简单文本");
            message.setText("测试邮件内容,,<h1>简单文本</h1>");

            this.mailSender.send(mimeMessage);

        } catch (MessagingException e) {
            e.printStackTrace();
        }
        return "send success";
    }



【发送html格式邮件】

    @RequestMapping("sendmail_html")
    public String sendMailHtml() {
        try {
            MimeMessage mimeMessage = this.mailSender.createMimeMessage();
            MimeMessageHelper message = new MimeMessageHelper(mimeMessage);
            message.setFrom("小鼠标@zslstudy.cn");
            message.setTo("********@163.com");
            message.setSubject("带Html的邮件");
            message.setText("测试邮件内容<br/><hr/><br/><h2>带html</h2>", true);

            this.mailSender.send(mimeMessage);

        } catch (MessagingException e) {
            e.printStackTrace();
        }
        return "send success";
    }



【发送带附件的邮件】

   @RequestMapping("sendmail_attachment")
    public String sendMailAttachment() {
        try {
            MimeMessage mimeMessage = this.mailSender.createMimeMessage();
            MimeMessageHelper message = new MimeMessageHelper(mimeMessage, true);
            message.setFrom("小鼠标@zslstudy.cn");
            message.setTo("********@163.com");
            message.setSubject("带附件的邮件");
            message.setText("测试邮件内容", true);

            //添加附件
            FileSystemResource file = new FileSystemResource(new File("src/main/resources/static/测试"));
            message.addAttachment("测试", file);
            this.mailSender.send(mimeMessage);
        } catch (MessagingException e) {
            e.printStackTrace();
        }
        return "send success";
    }



【发送代图片的邮件】

    @RequestMapping("sendmail_img")
    public String sendMailImg() {
        try {
            MimeMessage mimeMessage = this.mailSender.createMimeMessage();
            MimeMessageHelper message = new MimeMessageHelper(mimeMessage, true);
            message.setFrom("小鼠标@zslstudy.cn");
            message.setTo("********@163.com");
            message.setSubject("带图片的邮件");
            message.setText("测试带图片的邮件发送");

            FileSystemResource res = new FileSystemResource(new File("src/main/resources/static/6.jpg"));
            message.addInline("2", res);//感觉不去作用,非要使用内镶图片的话,,感觉html格式的可以实现
            this.mailSender.send(mimeMessage);

        } catch (MessagingException e) {
            e.printStackTrace();
        }
        return "send success";
    }



完整代码如下

package xatu.zsl.controller;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.io.FileSystemResource;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;
import java.io.File;

/**
 * Created by zsl on 2017/9/14.
 */
@RestController
public class MailController {
    @Autowired
    JavaMailSender mailSender;//可能会报错,,屏蔽掉就行了

    @RequestMapping("sendmail")
    public String sendMail() {
        try {
            MimeMessage mimeMessage = this.mailSender.createMimeMessage();
            MimeMessageHelper message = new MimeMessageHelper(mimeMessage);
            message.setFrom("小鼠标@zslstudy.cn");
            message.setTo("********@163.com");
            message.setSubject("简单文本");
            message.setText("测试邮件内容,,<h1>简单文本</h1>");

            this.mailSender.send(mimeMessage);

        } catch (MessagingException e) {
            e.printStackTrace();
        }
        return "send success";
    }

    @RequestMapping("sendmail_html")
    public String sendMailHtml() {
        try {
            MimeMessage mimeMessage = this.mailSender.createMimeMessage();
            MimeMessageHelper message = new MimeMessageHelper(mimeMessage);
            message.setFrom("小鼠标@zslstudy.cn");
            message.setTo("********@163.com");
            message.setSubject("带Html的邮件");
            message.setText("测试邮件内容<br/><hr/><br/><h2>带html</h2>", true);

            this.mailSender.send(mimeMessage);

        } catch (MessagingException e) {
            e.printStackTrace();
        }
        return "send success";
    }

    @RequestMapping("sendmail_attachment")
    public String sendMailAttachment() {
        try {
            MimeMessage mimeMessage = this.mailSender.createMimeMessage();
            MimeMessageHelper message = new MimeMessageHelper(mimeMessage, true);
            message.setFrom("小鼠标@zslstudy.cn");
            message.setTo("********@163.com");
            message.setSubject("带附件的邮件");
            message.setText("测试邮件内容", true);

            //添加附件
            FileSystemResource file = new FileSystemResource(new File("src/main/resources/static/测试"));
            message.addAttachment("测试", file);
            this.mailSender.send(mimeMessage);
        } catch (MessagingException e) {
            e.printStackTrace();
        }
        return "send success";
    }

    @RequestMapping("sendmail_img")
    public String sendMailImg() {
        try {
            MimeMessage mimeMessage = this.mailSender.createMimeMessage();
            MimeMessageHelper message = new MimeMessageHelper(mimeMessage, true);
            message.setFrom("小鼠标@zslstudy.cn");
            message.setTo("********@163.com");
            message.setSubject("带图片的邮件");
            message.setText("带图片的邮件发送");

            FileSystemResource res = new FileSystemResource(new File("src/main/resources/static/6.jpg"));
            message.addInline("2", res);//感觉不去作用,非要使用内镶图片的话,,感觉html格式的可以实现
            this.mailSender.send(mimeMessage);

        } catch (MessagingException e) {
            e.printStackTrace();
        }
        return "send success";
    }
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

鼠晓

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

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

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

打赏作者

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

抵扣说明:

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

余额充值