【问题标题】:Javamail - CSVPrinter : send email with csv attachedJavamail - CSVPrinter:发送带有 csv 附件的电子邮件
【发布时间】:2019-05-28 23:28:39
【问题描述】:

我想发送一封带有 csv 附件的电子邮件,而不必将 csv 文件存储在服务器上。

我创建了我的 csv:

StringWriter sw = new StringWriter();        
try {
    CSVPrinter csvPrinter = new CSVPrinter(sw, CSVFormat.DEFAULT.withHeader(
        "Année", "Mois", "Date", "Pièce", "Libellé",
        "Débit", "Crédit", "Compte", "Journal"
    ));
    for (ExportComptaAV export : exports){
        csvPrinter.printRecord(export.getAnnee().getLibelle(),
                                export.getMois().getLibelle(),
                                export.getDateMouvement().format(DateTimeFormatter.ofPattern("yyyy-MM-dd")),
                                export.getPiece(),
                                export.getLibelle(),
                                export.getMontantDebit().toString(),
                                export.getMontantCredit().toString(),
                                export.getNumCompte(),
                                export.getCodeJournal());
    }

} catch (IOException e) {
    e.printStackTrace();
}

还有我的电子邮件程序:

MimeMessage mimeMessage = javaMailSender.createMimeMessage();
try {
    MimeMessageHelper message = new MimeMessageHelper(mimeMessage, true, CharEncoding.UTF_8);
    InternetAddress ad = new InternetAddress("test@gmail.com");
    message.addTo(ad);
    message.setSubject(sujet);
    message.setText(content, isHtml);
    String fileName = "csvFile.csv";
    message.addAttachment(fileName,  new ByteArrayResource(...));

    javaMailSender.send(mimeMessage);
} catch (MessagingException mex) {
    throw mex;
}

所以我想将我的 CsvPrinter 转换为 ByteArrayresource。

有没有办法做到这一点?

【问题讨论】:

    标签: csv jakarta-mail


    【解决方案1】:

    从 StringWriter 中获取 String,从 String 中获取字节,并将它们与 ByteArrayResource 一起使用。

    【讨论】:

      猜你喜欢
      • 2013-06-13
      • 2017-01-07
      • 2016-08-23
      • 2019-11-21
      • 2015-10-27
      • 1970-01-01
      • 2015-09-09
      相关资源
      最近更新 更多