我正在将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 内容 - 处理:附件;等等“
以及我原始邮件中的内容。
有没有办法将换行符添加到CSV以使其成为有效的CSV附件?
提前致谢,
Hello world!
答案 0 :(得分:0)
我找到了它!
我正在将文件从s3读入带有Strings的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);