我想在电子邮件正文中嵌入一个excel(xls / xlsx)文件(不是附件)

时间:2014-04-03 09:43:07

标签: java excel sendmail html-email

我想在电子邮件正文中嵌入一个excel(xls / xlsx)文件(不是附件)。我尝试了以下代码,但它作为附件出现。当我尝试使用图像时,它会进入体内。以下是代码。

class SendEmail {

    public SendEmail() {

        // Create the attachment
        EmailAttachment attachment = new EmailAttachment();
        attachment.setPath("Filepath");


        attachment.setDisposition(EmailAttachment.INLINE);
        attachment.setDescription("Excel File");


        HtmlEmail email = new HtmlEmail();

        email.setHostName("smtp.google.com");
        email.setSmtpPort(465);
        email.setAuthenticator((javax.mail.Authenticator) new DefaultAuthenticator("Username", "Password"));
        email.setSSL(true);

        try {
            email.addTo("ToAddress");
            email.setFrom("FromAddress");
            email.setSubject("Attached Mail Test");


            // add the attachment

            email.attach(attachment);
            email.setTLS(true);

            // send the email
            email.send();

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

    public static void main(String[] args) {
        new SendEmail();
    }

1 个答案:

答案 0 :(得分:0)

您需要解析xls / xlsx文件(Apache POI是一个很好的库)并将其呈现为HTML(并将邮件的内容类型设置为text / html)。您不能依赖于另一个电子邮件客户端可以处理Microsoft文档的假设,而图像是非常常见的格式并且得到大多数客户的支持。显示图像是因为Gmail获取附件并将​​其放入邮件中(然后显示为HTML邮件)。