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

使用java在没有附件的电子邮件中包含图像,java,jakarta-mail,Java,Jakarta Mail,我想在电子邮件中添加一个图像和一些文本,而不必在电子邮件中附加图像。这可能吗 到目前为止,我已经做到了以下几点,但它是随附件发送的,邮件中还有图像。我希望它没有附件,但作为邮件的一部分 `Message message = new MimeMessage(session); message.setFrom(new InternetAddress(username)); message.setRecipients(Message.RecipientType.TO,

我想在电子邮件中添加一个图像和一些文本,而不必在电子邮件中附加图像。这可能吗

到目前为止,我已经做到了以下几点,但它是随附件发送的,邮件中还有图像。我希望它没有附件,但作为邮件的一部分

 `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);`
`Message Message=new mimessage(会话);
message.setFrom(新的Internet地址(用户名));
message.setRecipients(message.RecipientType.TO,
InternetAddress.parse(emailID));
message.setSubject(“密码重置”);
Multipart Multipart=新的mimemmultipart(“相关”);
BodyPart htmlPart=新的MimeBodyPart();
setContent(“Hi”,“text/html”);
multipart.addBodyPart(htmlPart);
BodyPart imgPart=新的MimeBodyPart();
//加载图像
DataSource ds=新文件数据源(“C:\\Users\\XYZ\\Desktop\\images.jpg”);
setDataHandler(新的DataHandler(ds));
//设置标题
imgPart.setHeader(“内容ID”,“the-img-1”);
多部分addBodyPart(imgPart);
//将多部分附加到消息
message.setContent(多部分);
传输。发送(消息)`

为此,您需要构建一个基于html的电子邮件。 谷歌上有很多这样的例子。 一个例子是看


请注意,您要发送的图像应该可以通过http访问收件人。可能您可以将其上传到google drive或某个图像服务器上

您需要构建一条消息。

您还打算如何发送图像?作为内联内容。我每天都会收到带有图片的邮件,而不是作为附件的内容。我想最好在img srcOk中使用url。但是为了实现这一点,我不需要有可以通过URL访问的图像吗?这些“内联”图像是附加的。检查完整的消息源。是否只有引用附件或使用URL才能嵌入图像?@Adarsh据我所知,是的。毕竟,图像必须在某个地方:要么在一个可公开访问的网站上,要么作为邮件的一部分。这就是附件。但我记得旧的Windows邮件程序可以使用RTF格式(当时没有mime附件也没有HTML),但没有其他邮件程序可以读取邮件。。。