有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java将CSV内容附加到邮件中

我的一个servlet在字符串变量中创建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文件一样附加到邮件中

谢谢


共 (2) 个答案

  1. # 1 楼答案

        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);
    
  2. # 2 楼答案

    您需要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);