Images en ligne dans le courriel à L'aide de JavaMail

je veux envoyer un email avec une image en ligne en utilisant javamail.

je suis en train de faire quelque chose comme cela.

MimeMultipart content = new MimeMultipart("related");

BodyPart bodyPart = new MimeBodyPart();
bodyPart.setContent(message, "text/html; charset=ISO-8859-1");
content.addBodyPart(bodyPart);

bodyPart = new MimeBodyPart();
DataSource ds = new ByteArrayDataSource(image, "image/jpeg");
bodyPart.setDataHandler(new DataHandler(ds));
bodyPart.setHeader("Content-Type", "image/jpeg; name=image.jpg");
bodyPart.setHeader("Content-ID", "<image>");
bodyPart.setHeader("Content-Disposition", "inline");
content.addBodyPart(bodyPart);

msg.setContent(content);

j'ai aussi essayé

    bodyPart.setHeader("inline; filename=image.jpg");

et

    bodyPart.setDisposition("inline");

mais quoi qu'il en soit, l'image est envoyée en pièce jointe et L'élimination du contenu se transforme en "pièce jointe".

Comment envoyer une image en ligne dans le courriel en utilisant javamail?

20
demandé sur Jops 2010-06-08 14:29:49

7 réponses

votre problème

autant que je puisse voir, il semble que la façon dont vous créez le message et tout est en grande partie juste! Vous utilisez les bons types de MIME et tout.

Je ne suis pas sûr de savoir pourquoi vous utilisez une source de données et un DataHandler, et avez un ContentID sur l'image, mais vous devez remplir votre question pour que je puisse résoudre plus. En particulier, la ligne suivante:

bodyPart.setContent(message, "text/html; charset=ISO-8859-1");

Ce qui est dans