博客
关于我
Springboot 最简单的发送邮件(文本、附件、图片)实战案例
阅读量:164 次
发布时间:2019-02-27

本文共 3530 字,大约阅读时间需要 11 分钟。

前言,我们这次案例使用QQ邮箱作为示例,作为发送者需要先完成相关的权限配置。以下是详细的操作和编码步骤。

授权操作流程:

  • 进入QQ邮箱,点击右上角的"设置"按钮
  • 在账户管理中找到"POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务"选项
  • 开启第一项POP3/SMTP服务,按照提示完成短信验证,获取授权码(后续代码配置需要用到)
  • 接下来开始编码。首先创建一个Spring Boot项目,除了勾选web包外,还需要添加JavaMail Sender包。

    项目创建完成后,查看pom.xml中的依赖包:

    • spring-boot-starter-web
    • spring-boot-starter-mail
    • spring-boot-starter-test

    配置参数,application.properties文件需要填写以下信息:

    • SMTP服务器地址:smtp.qq.com
    • SMTP服务器端口:587
    • 邮箱用户名:填写自己的QQ邮箱地址
    • 配置密码:填写刚刚获取的授权码

    接下来编写MailController.java:

    package com.mail.elegant.controller;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.core.io.FileSystemResource;import org.springframework.mail.MailException;import org.springframework.mail.SimpleMailMessage;import org.springframework.mail.javamail.JavaMailSender;import org.springframework.mail.javamail.MimeMessageHelper;import org.springframework.web.bind.annotation.PostMapping;import org.springframework.web.bind.annotation.RestController;import javax.mail.MessagingException;import javax.mail.internet.MimeMessage;import java.io.File;import java.util.Date;@RestControllerpublic class MailController {    @Autowired    private JavaMailSender javaMailSender;        @PostMapping("sendSimpleMailMessage")    public String sendSimpleMailMessage() {        try {            SimpleMailMessage message = new SimpleMailMessage();            message.setFrom("您的QQ邮箱地址");            message.setReplyTo("您的QQ邮箱地址");            String[] recipients = {"收件人邮箱1", "收件人邮箱2"};            message.setTo(recipients);            message.setCc("抄送邮箱地址");            message.setSentDate(new Date());            message.setSubject("邮件标题");            message.setText("邮件正文内容");            javaMailSender.send(message);        } catch (MailException e) {            e.printStackTrace();            return "发送失败";        }        return "发送成功";    }    @PostMapping("sendEnclosureMailMessage")    public String sendEnclosureMailMessage() {        try {            MimeMessage mimeMessage = javaMailSender.createMimeMessage();            MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true);            helper.setSubject("邮件标题");            helper.setFrom("您的QQ邮箱地址");            helper.setTo("收件人邮箱地址");            helper.setCc("抄送邮箱地址");            helper.setBcc("测试邮箱地址");            helper.setSentDate(new Date());            helper.setText("邮件正文内容");            helper.addAttachment("附件名", new File("附件路径"));            javaMailSender.send(mimeMessage);        } catch (MailException | MessagingException e) {            e.printStackTrace();            return "发送失败";        }        return "发送成功";    }    @PostMapping("sendImageMailMessage")    public String sendImageMailMessage() {        try {            MimeMessage mimeMessage = javaMailSender.createMimeMessage();            MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true);            helper.setSubject("邮件标题");            helper.setFrom("您的QQ邮箱地址");            helper.setTo("收件人邮箱地址");            helper.setCc("抄送邮箱地址");            helper.setBcc("测试邮箱地址");            helper.setSentDate(new Date());            helper.setText("

    图片内容

    ", true); helper.addInline("图片ID", new FileSystemResource(new File("图片路径"))); javaMailSender.send(mimeMessage); } catch (MailException | MessagingException e) { e.printStackTrace(); return "发送失败"; } return "发送成功"; }}注意事项:1. 确保MailController.java中的邮箱地址与application.properties中的配置一致2. 附件和图片路径请根据实际项目路径填写3. 使用Postman分别测试接口,发送邮件后QQ邮箱会收到相应邮件

    转载地址:http://hxwb.baihongyu.com/

    你可能感兴趣的文章
    Objective-C实现异或密码算法(附完整源码)
    查看>>
    Objective-C实现循环队列算法(附完整源码)
    查看>>
    Objective-C实现快速排序算法(附完整源码)
    查看>>
    Objective-C实现打格点算法(附完整源码)
    查看>>
    Objective-C实现批量修改文件类型算法(附完整源码)
    查看>>
    Objective-C实现找出一个数的质因数primeFactors算法(附完整源码)
    查看>>
    Objective-C实现操作MySQL(附完整源码)
    查看>>
    Objective-C实现数组去重(附完整源码)
    查看>>
    Objective-C实现数组的循环左移(附完整源码)
    查看>>
    Objective-C实现数除以二divideByTwo算法(附完整源码)
    查看>>
    Objective-C实现文件分割(附完整源码)
    查看>>
    Objective-C实现文件的删除、复制与重命名操作实例(附完整源码)
    查看>>
    Objective-C实现无锁链表(附完整源码)
    查看>>
    Objective-C实现时间戳转为年月日时分秒(附完整源码)
    查看>>
    Objective-C实现是否为 Pythagoreantriplet 毕氏三元数组算法(附完整源码)
    查看>>
    Objective-C实现显示响应算法(附完整源码)
    查看>>
    Objective-C实现普通矩阵A和B的乘积(附完整源码)
    查看>>
    Objective-C实现更新数字指定偏移量上的值updateBit算法(附完整源码)
    查看>>
    Objective-C实现最大类间方差法OTSU算法(附完整源码)
    查看>>
    Objective-C实现最大非相邻和算法(附完整源码)
    查看>>