在java邮件发件人中添加内嵌图像

时间:2013-11-08 06:16:54

标签: spring javamail

在我的项目中,当我向gmail或yahoo邮件发送邮件时,我的图像将内嵌图像绑定到正文部分。但是当我在outlook中打开相同的邮件时,它会将图像显示为附件并在正文部分显示空白区域。

MimeMessagePreparator messagePreparator = new MimeMessagePreparator() {             
    @Override
    public void prepare(MimeMessage mimeMessage) throws Exception {
        MimeMessageHelper messageHelper = new MimeMessageHelper(mimeMessage,true);
        messageHelper.setTo("abc@xyz.com");
        messageHelper.setFrom("info@abc.com");
        messageHelper.setSubject("Test");   
        messageHelper.setText(text, true);
        FileSystemResource res = new FileSystemResource(new File(message_image_path));
        messageHelper.addInline("identifier1234", res);
    }
};

其中 message_image_path 是我的图片的路径, text 是我的html消息

1 个答案:

答案 0 :(得分:0)

嗯......我实际上并没有在那里看到一个问题,但我假设你在问为什么它会有所不同。它的不同之处在于它们是由不同的人编写的不同程序。没有任何要求电子邮件以任何特定方式显示。有关附件与内联的信息只是邮件阅读器的提示。一些邮件读者忽略了这些提示。你无能为力。

如果您想让特定的邮件阅读器以特定方式显示邮件,最好的办法是在邮件阅读器中撰写此类邮件,然后查看您撰写的邮件的结构并复制该邮件。使用JavaMail。当然,这可能并不意味着该消息将在其他一些邮件阅读器中显示为预期。

最好的办法是保持简单。简单的html,引用消息中包含的图像(多部分/相关消息),可能是实现您想要的最佳方式。