CSV文本电子邮件附件中的Java换行符/换行符会破坏完整的附件

问题描述 投票:0回答:1

我正在将CSV文本文件作为带有Java的附件发送到我的程序中。如果我添加包含数据的字符串(标题和值),附件似乎很好,除了所有内容都在一行(我实际上忘记了换行符)。

MimeBodyPart attachPart = new MimeBodyPart();
attachPart.setDataHandler(new DataHandler(new ByteArrayDataSource(s3_string.getBytes(), "text/csv")));
multipart.addBodyPart(attachPart);

但是,当我在字符串中添加“\ n”或“\ r \ n”形式的换行符时,整个附件搞砸了,我得到的内容有“Content-Transfer-Encoding:7bit Content-Disposition:attachment; etc”等等。等等”

还有我的原始邮件。

有没有办法将换行符添加到CSV以使其成为有效的CSV附件?

提前致谢,

你好,世界!

java csv javamail
1个回答
0
投票

我找到了!

我正在将文件从s3读入带有字符串的LinkedList,但这似乎是一种效率低下的方法(尽管将文件写入tmp并附加它更有效)。我修复了:

                    MimeBodyPart attachPart = new MimeBodyPart();

                    try {
                        ByteArrayDataSource byte_array_data_source = new ByteArrayDataSource(s3.returnS3Object(this.bucketName, raw_s3_file_location).getObjectContent(),"text/csv");
                        attachPart.setDataHandler(new DataHandler(byte_array_data_source));
                        attachPart.setFileName(raw_s3_file_location.substring(raw_s3_file_location.indexOf("/")+1));

                    } catch (IOException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }

                    multipart.addBodyPart(attachPart);
© www.soinside.com 2019 - 2024. All rights reserved.