使用java在没有附件的电子邮件中包含图像

时间:2014-07-11 04:35:37

标签: java javamail

我想在电子邮件中添加图片以及一些文字,而无需在电子邮件中附加图片。这有可能吗?

到目前为止,我已设法执行以下操作,但它会附带附件以及邮件中的图像。我希望它没有附件,但作为邮件的一部分

 `Message message = new MimeMessage(session);
        message.setFrom(new InternetAddress(username));
        message.setRecipients(Message.RecipientType.TO,
                InternetAddress.parse(emailID));
        message.setSubject("Password Reset");

                    Multipart multipart = new MimeMultipart("related");


                    BodyPart htmlPart = new MimeBodyPart();
    htmlPart.setContent("<html><body>Hi<img src=\"cid:the-img-1\"/></body></html>", "text/html");

    multipart.addBodyPart(htmlPart);


    BodyPart imgPart=new MimeBodyPart();

    // Loading the image
    DataSource ds=new FileDataSource("C:\\Users\\XYZ\\Desktop\\images.jpg");
    imgPart.setDataHandler(new DataHandler(ds));

    //Setting the header
    imgPart.setHeader("Content-ID","the-img-1");

    multipart.addBodyPart(imgPart);

    // attaching the multi-part to the message

    message.setContent(multipart);


        Transport.send(message);`

2 个答案:

答案 0 :(得分:0)

您需要为此目的构建基于html的电子邮件。 有很多例子可以在google上获得。 一个例子是here

请注意,您要发送的图片应通过http访问收件人。可能是你可以在谷歌驱动器或某些图像服务器上传它

答案 1 :(得分:0)

您需要构建multipart/related消息。