返回介绍

19.2.1 添加附件

发布于 2024-08-17 00:45:49 字数 1750 浏览 0 评论 0 收藏 0

如果发送带有附件的Email,关键技巧是创建multipart类型的消息——Email由多个部分组成,其中一部分是Email体,其他部分是附件。

对于发送附件这样的需求来说,SimpleMailMessage过于简单了。为了发送multipart类型的Email,你需要创建一个MIME(Multipurpose Internet Mail Extensions)的消息,我们可以从邮件发送器的createMimeMessage()方法开始:

就这样,我们已经有了要使用的MIME消息。看起来,我们所需要做的就是指定收件人和发件人地址、主题、一些内容以及一个附件。尽管确实是这样,但并不是你想的那么简单。javax.mail.internet.MimeMessage本身的API有些笨重。好消息是,Spring提供的MimeMessageHelper可以帮助我们。

为了使用MimeMessageHelper,我们需要实例化它并将MimeMessage传给其构造器:

构造方法的第二个参数,在这里是个布尔值true,表明这个消息是multipart类型的。

得到了MimeMessageHelper实例后,我们就可以组装Email消息了。这里最主要区别在于使用helper的方法来指定Email细节,而不再是设置消息对象:

在发送Email之前,你唯一还要做的就是添加附件:在本例中,也就是一张图标图片。为了做到这一点,你需要加载图片并将其作为资源,然后将这个资源传递给helper的addAttachment方法:

在这里,我们使用Spring的FileSystemResource来加载位于应用类路径下的coupon.png。然后,调用addAttachment()。第一个参数是要添加到Email中附件的名称,第二个参数是图片资源。

multipart类型的Email已经构建完成了,现在可以发送它了。完整的sendSpittleEmailWithAttachment()方法如下所示。

程序清单19.2 使用MimeMessageHelper发送带有附件的Email

multipart类型的Email能够实现很多的功能,添加附件只是其中之一。除此之外,通过将Email体指明为HTML,我们可以生成比简单文本更漂亮的Email。接下来,看一下如何使用MimeMessageHelper来发送更吸引人的Email。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文