Apache commons-mail HtmlEmail with attachment:html在Gmail中作为noname.html附加

时间:2014-06-10 14:53:00

标签: java gmail html-email hybris apache-commons-email

我使用apache commons-mail(v1.3.2)发送带有PDF作为附件的订单确认电子邮件。 电子邮件在Outlook(网络和桌面)上都没有问题,但是当我发送到我的Gmail帐户时,邮件内容为空,而Html内容附在一个单独的文件中#34; noname.html&#34 ;

我的代码:

       // 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 ...

1 个答案:

答案 0 :(得分:1)

你应该使用

EmailAttachment attachment = new EmailAttachment();
attachment.setPath(pdfFile.getPath());
attachment.setDisposition(EmailAttachment.ATTACHMENT);

然后你将它附加到这样的电子邮件:

htmlEmail.attach(attachment);