你在 javamail 里面设置附件的时候,需要注意两个地方:
1)设置 subType 为 related (这个是必须的,否则有些程序会将内置的图当成附件来处理了)
2) 使用 MimeMultipart 来将各个内容分别 add 进去。
你可以直接参考下面链接的内容:
http://stackoverflow.com/questions/2996514/inline-images-in-email-using-javamail
这里面给你把部分内容直接复制出来了:
MimeMultipart rootContainer = new MimeMultipart()
rootContainer.setSubType("related")
rootContainer.addBodyPart(alternativeMultiPartWithPlainTextAndHtml) // not in focus here
rootContainer.addBodyPart(createInlineImagePart(base64EncodedImageContentByteArray))
...
message.setContent(rootContainer)
message.setHeader("MIME-Version", "1.0")
message.setHeader("Content-Type", rootContainer.getContentType())
...
BodyPart createInlineImagePart(byte[] base64EncodedImageContentByteArray) throws MessagingException {
InternetHeaders headers = new InternetHeaders()
headers.addHeader("Content-Type", "image/jpeg")
headers.addHeader("Content-Transfer-Encoding", "base64")
MimeBodyPart imagePart = new MimeBodyPart(headers, base64EncodedImageContentByteArray)
imagePart.setDisposition(MimeBodyPart.INLINE)
imagePart.setContentID("&ltimage&gt")
imagePart.setFileName("image.jpg")
return imagePart
相信使用过Spring的众多开发者都知道Spring提供了非常好用的 JavaMailSender 接口实现邮件发送。在Spring Boot的Starter模块中也为此提供了自动化配置。下面通过实例看看如何在Spring Boot中使用 JavaMailSender 发送邮件。
在Spring Boot的工程中的 pom.xml 中引入 spring-boot-starter-mail 依赖:
如其他自动化配置模块一样,在完成了依赖引入之后,只需要在 application.properties 中配置相应的属性内容。
下面我们以QQ邮箱为例,在 application.properties 中加入如下配置(注意替换自己的用户名和密码):
通过单元测试来实现一封简单邮件的发送:
到这里,一个简单的邮件发送就完成了,运行一下该单元测试,看看效果如何?
由于Spring Boot的starter模块提供了自动化配置,所以在引入了 spring-boot-starter-mail 依赖之后,会根据配置文件中的内容去创建 JavaMailSender 实例,因此我们可以直接在需要使用的地方直接 @Autowired 来引入邮件发送对象。
对于qq邮箱这样写过后会报错:
1、异常信息:
这种错误一般是因为jre的lib下C:\Program Files\Java\jdk1.8.0_51\jre\lib\security,替换2个jar包,参考文档
http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html
2、异常信息
发送方必须要开启smtp,获取到的授权码,界面如下:
3、异常信息:
换成公司企业邮箱报错,通过将properties文件的内容修改就可以了,这里的用户密码就是自己的邮箱密码(这点不同于qq邮箱)
1. 发送HTML格式的邮件
注意: 这里创建的是 MimeMessageHelper ,且在调用 setText 时需要在第二个参数传入 true ,这样才会使用HTML格式发送邮件
通过velocity模板发送邮件:
在resources下建一个templates包 该包下建立一个文件template.vm,内容以html格式随便写
<html>
<body>
<h3>你好, ${username}, 这是一封模板邮件!</h3>
</body>
</html>
测试结果:
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)