我使用apache commons-mail(v1.3.2)发送带有PDF附件的订单确认电子邮件。
电子邮件显示在Outlook(Web和桌面)中都没有问题,但是当我发送到我的gmail帐户时,邮件的内容为空,HTML内容附加在单独的文件“ noname.html”中。
我的代码:
// Create mail instance using commons-mail and the hybris MailUtility class.
HtmlEmail htmlEmail = (HtmlEmail) MailUtils.getPreConfiguredEmail(); // creates a mail instance with set mail
htmlEmail.setCharset("UTF-8");
htmlEmail.setHtmlMsg("this is <b>html text</b>);
// Part two is attachment
DataSource ds = new ByteArrayDataSource(mailAttachment.getData(), "application/pdf");
htmlEmail.attach(ds, "attach.pdf", "generalconditions", EmailAttachment.ATTACHMENT);
}
//send mail
htmlEmail.send();
最初,Outlook中也出现了此问题,但是我通过从commons-mail v1.1切换到v1.3.2来解决此问题。
仍然不是固定的gmail ...
最佳答案
你应该用
EmailAttachment attachment = new EmailAttachment();
attachment.setPath(pdfFile.getPath());
attachment.setDisposition(EmailAttachment.ATTACHMENT);
然后将其附加到电子邮件中,如下所示:
htmlEmail.attach(attachment);