【问题标题】:I want to embed an excel(xls/xlsx) file in an email body(not attachment)我想在电子邮件正文中嵌入一个 excel(xls/xlsx) 文件(不是附件)
【发布时间】:2014-05-15 01:12:14
【问题描述】:

我想在电子邮件正文(不是附件)中嵌入一个 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();
    }

【问题讨论】:

    标签: java excel sendmail html-email


    【解决方案1】:

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

    【讨论】:

    • 我假设您使用 Gmail,因为您在 Gmail 上进行身份验证
    • 感谢您的回复。我能够使用 Apache POI 解析 xls 文件,但我在 excel 文件中有一个图表,我无法使用 Apache POI 解析它。所以我需要的是是否有任何直接的方法可以在邮件正文中嵌入 excel
    猜你喜欢
    • 2012-05-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-09
    • 1970-01-01
    • 2019-05-18
    • 2018-12-30
    相关资源
    最近更新 更多