我的一个servlet在String变量中创建CSV内容。
我想像附件一样发送这个CSV,但每个人都知道GAE的局限性:创建文件是不可能的。所以,我决定找到另一个解决方案。
我的意思是附加CSV字符串:
String csv = "";
Message msg = new MimeMessage(session);
msg.setDataHandler(new DataHandler(new ByteArrayDataSource(csv.getBytes(),"text/csv")));
msg.setFileName("data.csv");
我收到邮件但没有附件。 CSV字符串已集成到邮件的正文部分。
如何将CSV文件中的CSV字符串附加到邮件中?
由于
答案 0 :(得分:7)
您需要MimeMultipart
消息并将其附加为MimeBodyPart:
Message msg = new MimeMessage(session);
MimeBodyPart attachFilePart = new MimeBodyPart();
attachFilePart.setDataHandler(new DataHandler(new ByteArrayDataSource(csv.getBytes(),"text/csv")))
attachFilePart.setFileName("data.csv");
msg.addBodyPart(attachFilePart);
答案 1 :(得分:0)
javax.mail.Multipart multipart = new MimeMultipart();
javax.mail.internet.MimeBodyPart messageBodyPart = new javax.mail.internet.MimeBodyPart();
multipart.addBodyPart(messageBodyPart);
javax.activation.DataSource source = new FileDataSource("C:\\Notes\\data.csv");
messageBodyPart.setDataHandler( new DataHandler(source));
messageBodyPart.setFileName("data.csv");
multipart.addBodyPart(messageBodyPart);
msg.setContent(multipart);
MimeBodyPart part = new MimeBodyPart();
part.setText(text);
multipart.addBodyPart(part);