Spring进阶—如何用Java代码实现邮件发送(二)

上次给大家分享了怎样发送简单邮件,本次给大家继续分享附件的发送、内嵌html、模版文件的发送。

发送带附件的邮件:

Multipart email允许添加附件和内嵌资源(inline resources);

使用一个简单的JPEG图片作为附件,android.png放在工程的根目录,以相对路径的方式加载。

发送内嵌资源的邮件:

内嵌资源可能是你在信件中希望使用的图像或样式表,但是又不想把它们作为附件。

内嵌资源源使用Content-ID(上例中是android.png)来插入到mime信件中去。

加入文本和资源的顺序是非常重要的。

首先,先加入文本,随后是资源。

如果顺序弄反了,它将无法正常运作哦!

使用Velocity模板来创建邮件内容:

在之前的代码示例中,所有邮件的内容都是显式定义的,并通过调用message.setText(..)来设置邮件内容。

而在企业级应用程序中, 基于如下的原因,可能不会以上述方式创建你的邮件内容:

1.使用Java代码来创建基于HTML的邮件内容不仅容易犯错,同时也是一件麻烦的事情

2.将无法将显示逻辑和业务逻辑很明确的区分开

3.一旦需要修改邮件内容的显式格式和内容,你需要重新编写Java代码,重新编译,重新部署……

一般来说解决这些问题的典型的方式是使用FreeMarker或者Velocity这样的模板语言来定义邮件内容的显式结构。

这样,只要创建在邮件模板中需要展示的数据,并发送邮件即可。

通过使用Spring对FreeMarker和Velocity的支持类, 你的邮件内容将变得简单,这同时也是一个最佳实践。

下面是一个使用Velocity来创建邮件内容的例子:

使用Velocity模板发送邮件的具体开发步骤:

一、添加Velocity依赖的jar文件

二、Classpath路径添加模版文件velocity.vm

三.模型对象User

四、WelcomeService业务对象

五、Junit

六、等着收邮箱吧

你还在等什么,赶紧试试吧。

  

时间: 2024-08-24 08:38:01

Spring进阶—如何用Java代码实现邮件发送(二)的相关文章

java 实现 email 邮件发送最简单优雅的方式(网易 163 为例)

如何使用IMAP服务? 首先介绍一些邮件发送的基础知识,如果你已经知道可以跳过. 直接到 Email 邮件发送实现的部分. IMAP是什么? IMAP,即Internet Message Access Protocol(互联网邮件访问协议),您可以通过这种协议从邮件服务器上获取邮件的信息.下载邮件等. IMAP与POP类似,都是一种邮件获取协议. IMAP和POP有什么区别? POP允许电子邮件客户端下载服务器上的邮件,但是您在电子邮件客户端的操作(如:移动邮件.标记已读等),这是不会反馈到服务

java实现简单邮件发送

java实现简单邮件发送

java工具类-邮件发送

mail-1.4.jar package com.huawei.it.citools.mail; import java.util.Date;import java.util.List;import java.util.Properties; import javax.mail.Address;import javax.mail.BodyPart;import javax.mail.Message;import javax.mail.MessagingException;import javax

Spring装配bean--02通过Java代码装配bean

Spring容器负责创建应用程序中的bean并通过DI来协调这些对象之间的关系 Spring提供了三种主要的装配机制: 在XML中进行显式配置 在Java中进行显式配置 隐式的bean发现机制和自动装配 2在Java中显式配置 尽管在很多场景下通过组件扫描和自动装配实现Spring的自动化装配是更为推荐的方式,但是当你要将第三方库中的组件装配到你的应用中,这时就必须显式的配置bean 显式配置包括:Java和XML,我更推荐使用Java类配置,就像上文中的JavaConfig那样 JavaCon

如何用Java代码来把SSL的证书自动导入到Java的秘钥存储文件(keystore)

我们在开发或者使用SSL的过程中,很多的软件需要我们提供java的keystore,特别是一些基于Java的中间件产品. 我们常规的做法是JDK自带的工具命令(keytool)去做,比如,下面的例子 keytool -import -v -alias EnTrust2048 -file D:\certs\EnTrust2048.cer -keystore D:\certs\test.jks keytool -import -v -alias EntrustCertificationAuthori

通过java代码发邮件

用java发邮件,必须要导入新的包 mail.jar – 发邮件的核心包 activation.jar – 对用户和密码加密. 在mail.jar中有三个核心类: Javax.mail.Session – 是指与邮件服务器会话.整个项目中只要一个就可以了. Javax.mail.Message(接口)  - 准备发送数据信息. MimeMessage - 可以设置类型的数据信息. Transport – 它拥有一个方法可以发送Message. 第一步:导入两个jar包 第二步:发简单的邮件 @T

Spring Boot 2.0 图文教程 | 集成邮件发送功能

文章首发自个人微信公众号: 小哈学Java 个人网站: https://www.exception.site/springboot/spring-boots-send-mail 大家好,后续会间断地奉上一些 Spring Boot 2.x 相关的博文,包括 Spring Boot 2.x 教程和 Spring Boot 2.x 新特性教程相关,如 WebFlux 等.还有自定义 Starter 组件的进阶教程,比如:如何封装一个自定义图床 Starter 启动器(支持上传到服务器内部,阿里 OS

如何用JAVA代码签发数字证书

用JAVA签发数字证书 打开cmd 1.输入D: 2.输入cd keys 3.输入命令查看创建的密钥库的证书列表 keytool -list -v -keystore mykey.keystore -storepass 123456 4. 之前导出过server.cer文件,把这个文件安装到操作系统,过程默认. 5.创建一个密钥对,和之前一样,输入如下命令: --创建密钥对 keytool -genkey -dname "CN=tmp, OU=NC, O=Shanghai University,

java实现smtp邮件发送

一.准备工作 首先你需要已一个发送邮箱,一般的邮箱都有SMTP.POP3服务,比如QQ邮箱,登陆QQ邮箱开启SMTP服务,开启是服务器会提示你设置独立密码,这个密码是跟邮箱正常登陆的密码不同的,这个是SMTP登陆要用的密码,因此这里需记下SMTP独立密码,程序中会有使用.(准备工作就是这么简单,只需有一个开启SMTP服务的邮箱即可)这里贴一下QQ邮箱设置SMTP的位置:登陆邮箱------点击“设置”-------点击“账户”标签页,往下翻就可以看到如下界面 二.一般情况下发送邮件只是中间操作,