文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Spring Boot邮件发送教程:步步为营,轻松实现图片附件邮件!

2024-11-30 00:17

关注

通过Spring Boot构建一个功能强大的邮件发送应用程序,重点是实现发送包含图片附件的邮件。我将逐步介绍添加必要的依赖、创建邮件服务类和控制器的步骤,并提供了具体的示例源代码。跟随这个简单而清晰的教程,您将能够轻松地集成邮件发送功能到您的Spring Boot应用中。

步骤 1: 添加依赖

确保在pom.xml文件中添加以下依赖,以引入Spring Boot的邮件支持:


    org.springframework.boot
    spring-boot-starter-mail

步骤 2: 创建邮件服务类

创建一个服务类,该类包含了发送带有图片附件的邮件的逻辑。在这个示例中,我们使用JavaMailSenderMimeMessageHelper来构建邮件:

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.io.ByteArrayResource;
import org.springframework.core.io.Resource;
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.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;

@Service
public class EmailService {

    @Autowired
    private JavaMailSender javaMailSender;

    public void sendEmailWithAttachment(String to, String subject, String text, String imagePath) throws MessagingException, IOException {
        MimeMessage message = javaMailSender.createMimeMessage();
        MimeMessageHelper helper = new MimeMessageHelper(message, true);

        helper.setTo(to);
        helper.setSubject(subject);
        helper.setText(text, true);

        // 添加图片附件
        helper.addInline("imageAttachment", getImageResource(imagePath));

        javaMailSender.send(message);
    }

    private Resource getImageResource(String imagePath) throws IOException {
        Path path = Paths.get(imagePath);
        byte[] imageBytes = Files.readAllBytes(path);
        return new ByteArrayResource(imageBytes);
    }
}

步骤 3: 创建邮件发送的Controller

创建一个Controller类,用于触发发送带有图片附件的邮件的操作:

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.mail.MessagingException;
import java.io.IOException;

@RestController
@RequestMapping("/email")
public class EmailController {

    @Autowired
    private EmailService emailService;

    @GetMapping("/send")
    public String sendEmailWithAttachment() {
        try {
            // 替换为实际的收件人地址、主题、邮件内容和图片路径
            String to = "recipient@example.com";
            String subject = "邮件主题";
            String text = "邮件正文,包含图片:"; // 注意使用cid:imageAttachment引用图片附件
            String imagePath = "/path/to/your/image.jpg";

            emailService.sendEmailWithAttachment(to, subject, text, imagePath);

            return "邮件发送成功";
        } catch (MessagingException | IOException e) {
            e.printStackTrace();
            return "邮件发送失败";
        }
    }
}

步骤 4: 运行应用程序

确保Spring Boot应用程序正确配置,并运行该应用程序。通过访问定义的Controller接口,触发发送带有图片附件的邮件的操作。

这个示例中的代码是一个基本的实现,您可能需要根据实际需求进行适当的修改和扩展。确保替换示例中的占位符(如收件人地址、主题、邮件内容和图片路径)为实际的值。

来源:今日头条内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯