1

在我的项目中,当我将邮件发送到 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是我的图像的路径,文本是我的 html 消息

4

1 回答 1

0

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

如果您试图让特定的邮件阅读器以特定方式显示消息,最好的办法是在该邮件阅读器中编写这样的消息,然后查看您编写的消息的结构并使用 JavaMail 复制它。当然,这可能并不意味着消息会在其他邮件阅读器中按预期显示。

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

于 2013-11-08T08:08:11.250 回答