Я хочу отправить встроенное изображение на электронную почту. Я перепробовал почти все возможные способы, но безрезультатно.
Я могу добавлять изображения как встроенные, но они также появлялись во вложениях, поэтому я не могу избежать этого вложения.
messageBodyPart = new MimeBodyPart();
String htmlText = "<H1>This is the image: </H1><img src=\"cid:image\">";
((MimeBodyPart) messageBodyPart).setText(htmlText, null, "html");
mp.addBodyPart(messageBodyPart);
// second part (the image)
messageBodyPart = new MimeBodyPart();
String filePath = "abc.png";
((MimeBodyPart) messageBodyPart).attachFile(filePath, "image/png", "base64");
((MimeBodyPart) messageBodyPart).setContentID("<image>");
mp.addBodyPart( messageBodyPart );
Я также пытался использовать messageBodyPart.setDisposition( MimePart.INLINE );
, но все равно не повезло.
Изучите использование MimeMessageHelper. Это сделает вашу жизнь намного проще
MimeMessageHelper helper = new MimeMessageHelper( mimeMessage, true );
helper.setText( htmlText, true );
helper.addInline( "image", signatureImage ); // image here is the cid
Вам нужно создать составное/связанное сообщение. У Часто задаваемые вопросы по JavaMail есть пример.