Java 文件打包压缩&发送邮件


前言

本文主要介绍了两部分内容:如何将多文件打为压缩包、将压缩包作为邮件附件发送邮件


一、背景

最近要做一个需求,要求:将一批文件内容按照一定格式达成压缩包,并以附件形式发送到执行用户邮箱,这里做一个简单总结

二、使用步骤

1.引入依赖

		<dependency>
            <groupId>javax.mail</groupId>
            <artifactId>mailapi</artifactId>
            <version>1.4.3</version>
        </dependency>
        <dependency>
            <groupId>javax.mail</groupId>
            <artifactId>mail</artifactId>
            <version>1.4.1</version>
        </dependency>
        <dependency>
            <groupId>javax.mail</groupId>
            <artifactId>javax.mail-api</artifactId>
            <version>1.5.4</version>
        </dependency>

一般公司都会有自己构建的依赖,大概不需要手动导入,这里为个人调试时使用的依赖


2、多文件输出并压缩为压缩包

	private void export(String toEmail) {
   
		// ...省略内部代码
        OutputStream outputStream = new ByteArrayOutputStream(1024);

            try {
   
                ZipOutputStream zipOut = new ZipOutputStream(outputStream);
                String dirName = String.format("%s-任务文件", taskId);
				// 这里的myPoObject是本人业务对象,自行替换为要压缩的元信息
                putDataToStream(myPoObject, zipOut, dirName);

				// 不生成中间压缩包,直接将生成的zipOutStream转输入流,准备写入邮件附件
                ByteArrayOutputStream baos = (ByteArrayOutputStream) outputStream;
                InputStream bais = new ByteArrayInputStream(baos.toByteArray());
                
                // 发送邮件,与压缩部分无关
                mailService.sendMail(toEmail, bais, String.format("任务-%s.zip"
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值