Spring Boot 2.X(十三):邮件服务

简介: 前言 邮件服务在开发中非常常见,比如用邮件注册账号、邮件作为找回密码的途径、用于订阅内容定期邮件推送等等,下面就简单的介绍下邮件实现方式。 准备 一个用于发送的邮箱,本文是用腾讯的域名邮箱,可以自己搞一个域名绑定下,登录地址:http://domain.
+关注继续查看

前言

邮件服务在开发中非常常见,比如用邮件注册账号、邮件作为找回密码的途径、用于订阅内容定期邮件推送等等,下面就简单的介绍下邮件实现方式。

邮件服务实现

1.添加依赖

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

2.配置文件

spring.mail.host=smtp.qq.com
spring.mail.username=zwqh@clover1314.com
spring.mail.password=*****
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.starttls.enable=true
spring.mail.properties.mail.smtp.starttls.required=true

3.实现示例

@Service
public class MailTool {
    
    @Value("${spring.mail.username}")
    private String from;

    @Autowired
    private JavaMailSender mailSender;

    /**
     * 发送邮件
     * 
     * @return
     */
    public boolean send() {
        try {
            SimpleMailMessage message = new SimpleMailMessage();
            message.setFrom(from);//发送者
            message.setTo("zwqh@clover1314.com");//接受者
            message.setCc("sohuniuer@sina.com");// 抄送
            message.setSubject("邮件主题"); //邮件主题
            message.setText("这里是邮件内容");//邮件内容
            mailSender.send(message);
            System.out.println("邮件发送成功");
            return true;
        } catch (Exception e) {
            e.printStackTrace();
            return false;
        }
    }

    /**
     * 发送富文本邮件
     * 
     * @return
     */
    public boolean sendHtml() {
        // 使用 JavaMail 的 MimeMessage,支持更多复杂的邮件格式和内容
        MimeMessage mimeMessage = mailSender.createMimeMessage();
        try {
            // 创建 MimeMessageHelper 对象,处理 MimeMessage 辅助类
            MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true);
            // 使用辅助类 MimeMessage 设定参数
            helper.setFrom(from);
            helper.setTo("zwqh@clover1314.com");
            helper.setBcc("sohuniuer@sina.com");//密送
            helper.setSubject("富文本邮件主题");
            helper.setText("<h1>这是富文本邮件内容标题</h1><p style='color:red;'>这里是段落一</p><p style='color:orange;'>这里是段落二</p>",
                    true);        
            mailSender.send(mimeMessage);
            System.out.println("邮件发送成功");
            return true;
        } catch (MessagingException e) {
            e.printStackTrace();
            return false;
        }
    }
    /**
     * 发送富文本带附件的邮件
     * @return
     */
    public boolean sendHtmlWithAttach() {
        // 使用 JavaMail 的 MimeMessage,支持更多复杂的邮件格式和内容
        MimeMessage mimeMessage = mailSender.createMimeMessage();

        try {
            // 创建 MimeMessageHelper 对象,处理 MimeMessage 辅助类
            MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true);
            helper.setFrom(from);
            helper.setTo("zwqh@clover1314.com");
            helper.setSubject("富文本带附件的邮件主题");
            helper.setText("<h1>这是富文本邮件内容标题</h1><p style='color:red;'>这里是段落一</p><p style='color:orange;'>这里是段落二</p>",
                    true);
            //加载文件资源作为附件
            ClassPathResource file=new ClassPathResource("static/avatar2.jpg");
            //添加附件,并重命名
            helper.addAttachment("附件.jpg", file);
            mailSender.send(mimeMessage);
            System.out.println("邮件发送成功");
            return true;
        } catch (MessagingException e) {
            e.printStackTrace();
            return false;
        }

    }

}

4.Controller 用于测试

@RestController
public class MailController {

    @Autowired
    private MailTool mailTool;
    
    @RequestMapping("/send")
    public String send() {
        mailTool.send();
        return "send success";
    }
    
    @RequestMapping("/sendHtml")
    public String sendHtml() {
        mailTool.sendHtml();
        return "sendHtml success";
    }
    
    @RequestMapping("/sendHtmlWithAttach")
    public String sendHtmlWithAttach() {
        mailTool.sendHtmlWithAttach();
        return "sendHtmlWithAttach success";
    }
    
    
}

5.测试效果

示例代码

github

码云

非特殊说明,本文版权归 朝雾轻寒 所有,转载请注明出处.

原文标题:Spring Boot 2.X(十三):邮件服务

原文地址: https://www.zwqh.top/article/info/22

如果文章对您有帮助,请扫码关注下我的公众号,文章持续更新中...

相关文章
|
3月前
|
SQL druid 前端开发
让SpringBoot不需要Controller、Service、DAO、Mapper,卧槽!这款工具绝了!
让SpringBoot不需要Controller、Service、DAO、Mapper,卧槽!这款工具绝了!
|
9月前
|
Java 关系型数据库 MySQL
玩“公主焊接”,顺便学习学习数据库关系映射与Spring Boot中MyBatis(SSM框架)的级联操作(bushi)
玩“公主焊接”,顺便学习学习数据库关系映射与Spring Boot中MyBatis(SSM框架)的级联操作(bushi)
275 0
|
9月前
|
Java Spring
Spring Boot AOP - 面向切面编程
Spring Boot AOP - 面向切面编程
315 1
|
9月前
|
前端开发 Java API
Spring Boot中的校验-Validation的使用
Spring Boot中的校验-Validation的使用
203 0
|
9月前
|
安全 Java 数据安全/隐私保护
Spring Boot发送邮件以及阿里云服务器无法发送邮件的问题解决
Spring Boot发送邮件以及阿里云服务器无法发送邮件的问题解决
379 0
|
9月前
|
前端开发 Java 数据格式
Spring Boot实现文件上传
Spring Boot实现文件上传
350 0
|
9月前
|
安全 Java Maven
Spring Boot资源文件问题总结(Spring Boot的静态资源访问,配置文件外置)
Spring Boot资源文件问题总结(Spring Boot的静态资源访问,配置文件外置)
927 1
|
9月前
|
域名解析 Java API
Certbot生成Lets Encrypt免费证书并配置到Spring Boot
Certbot生成Lets Encrypt免费证书并配置到Spring Boot
654 0
|
9月前
|
XML Java 数据库连接
Spring Boot中的Mybatis分页插件-pagehelper的使用
Spring Boot中的Mybatis分页插件-pagehelper的使用
331 0
|
9月前
|
SQL Java 数据库连接
一招学会—Spring Boot使用PageHelper进行分页
一招学会—Spring Boot使用PageHelper进行分页
376 0
相关产品
云迁移中心
推荐文章
更多