Spring发送邮件如何内嵌图片增加附件

 更新时间:2020年10月21日 11:30:00   作者:cuisuqiang  
这篇文章主要介绍了Spring发送邮件如何内嵌图片增加附件,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

用到的JAR包:

spring.jar
mail.jar
activation.jar
commons-logging.jar
log4j-1.2.15.jar

内嵌图片,给定一个CID值即可,增加附件,使用MimeMessageHelper的addAttachment即可

现在一般不会做内嵌图片,因为这样邮件会很大,容易对服务器造成压力,一般做法是使用图片链接

另外,如果要做内嵌或发送图片,你应该使用信用较高的邮箱帐户,否则会报错:

554 DT:SPM 发送的邮件内容包含了未被许可的信息,或被系统识别为垃圾邮件。请检查是否有用户发送病毒或者垃圾邮件

对于163邮箱服务器会产生的其他问题,参见:http://help.163.com/09/1224/17/5RAJ4LMH00753VB8.html

以下是示例代码:

package test;

import java.util.Properties;
import javax.mail.Session;
import javax.mail.internet.MimeMessage;
import org.springframework.core.io.ClassPathResource;
import org.springframework.mail.javamail.JavaMailSenderImpl;
import org.springframework.mail.javamail.MimeMessageHelper;

/**
 * 这里不做异常处理
 */
public class SendMail {
	public static void main(String[] args) throws Exception{
		// 发送器
		JavaMailSenderImpl sender = new JavaMailSenderImpl();
		sender.setHost("smtp.163.com");
		sender.setPort(25); // 默认就是25
		sender.setUsername("用户@163.com"); 
		sender.setPassword("密码");
		sender.setDefaultEncoding("UTF-8");
		
		// 配置文件对象
    Properties props = new Properties();  
    props.put("mail.smtp.auth", "true"); // 是否进行验证
		Session session = Session.getInstance(props);
		sender.setSession(session); // 为发送器指定会话
		
		MimeMessage mail = sender.createMimeMessage();
		MimeMessageHelper helper = new MimeMessageHelper(mail, true);
		helper.setTo("用户@163.com"); // 发送给谁
		helper.setSubject("强哥邀请,谁敢不从!"); // 标题
		helper.setFrom("用户@163.com"); // 来自
		// 邮件内容,第二个参数指定发送的是HTML格式
		helper.setText("<font color='red'>强哥邀请你访问我的博客:http://cuisuqiang.iteye.com/!</font><br><img src='cid:myImg'>",true);
		// 增加CID内容
		ClassPathResource img = new ClassPathResource("abc.jpg");
		helper.addInline("myImg", img);
		// 增加附件
		ClassPathResource file = new ClassPathResource("abc.zip");
		helper.addAttachment("abc.zip", file);
		
		sender.send(mail); // 发送
		
		System.out.println("邮件发送成功");
	}
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • 将JSON字符串数组转对象集合方法步骤

    将JSON字符串数组转对象集合方法步骤

    这篇文章主要给大家介绍了关于将JSON字符串数组转对象集合的方法步骤,文中通过代码示例介绍的非常详细,对大家的学习或者工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-08-08
  • Java通过MySQL的加解密函数实现敏感字段存储

    Java通过MySQL的加解密函数实现敏感字段存储

    这篇文章主要介绍了如何在Java中MySQL的加解密函数实现敏感字段存储,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2022-03-03
  • Spring Cloud引入Eureka组件,完善服务治理

    Spring Cloud引入Eureka组件,完善服务治理

    这篇文章主要介绍了Spring Cloud引入Eureka组件,完善服务治理的过程详解,帮助大家更好的理解和使用spring cloud,感兴趣的朋友可以了解下
    2021-02-02
  • Java设计模式之模板方法详解

    Java设计模式之模板方法详解

    模板方法的概念:定义了一个操作中的算法的骨架,而将部分步骤的实现在子类中完成。模板方法模式使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤
    2022-07-07
  • 基于IO版的用户登录注册实例(Java)

    基于IO版的用户登录注册实例(Java)

    下面小编就为大家带来一篇基于IO版的用户登录注册实例(Java)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-09-09
  • 基于Spring AOP proxyTargetClass的行为表现总结

    基于Spring AOP proxyTargetClass的行为表现总结

    这篇文章主要介绍了Spring AOP proxyTargetClass的行为表现总结,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-08-08
  • 深入浅析Random类在高并发下的缺陷及JUC对其的优化

    深入浅析Random类在高并发下的缺陷及JUC对其的优化

    这篇文章主要介绍了Random类在高并发下的缺陷及JUC对其的优化 ,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-04-04
  • 基于RocketMQ推拉模式详解

    基于RocketMQ推拉模式详解

    这篇文章主要介绍了RocketMQ推拉模式的使用,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-07-07
  • Java FileInputStream与FileOutputStream使用详解

    Java FileInputStream与FileOutputStream使用详解

    这篇文章主要介绍了Java FileInputStream与FileOutputStream使用详解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-08-08
  • idea设置@Author文件头注释的实现步骤

    idea设置@Author文件头注释的实现步骤

    本文主要介绍了idea设置@Author文件头注释的实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-07-07

最新评论