我使用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);

07-24 18:48