我想在电子邮件正文(不是附件)中嵌入 Excel(xls/xlsx) 文件。我尝试了下面的代码,但它作为附件出现。当我尝试使用图像时,它就会进入 body 。下面是代码。
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();
}
最佳答案
您需要解析 xls/xlsx 文件(Apache POI 是一个很好的库)并将其呈现为 HTML(并将邮件的内容类型设置为 text/html)。您不能依赖另一个电子邮件客户端可以处理 Microsoft 文档的假设,而图像是非常常见的格式并且受到大多数客户端的支持。显示该图像是因为 Gmail 获取附件并将其放入邮件中(然后显示为 HTML 邮件)。
关于java - 我想在电子邮件正文(不是附件)中嵌入 excel(xls/xlsx) 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22833711/