Как добавить встроенное изображение с помощью javamail? - PullRequest
0 голосов
/ 20 мая 2019

Я хочу отправить встроенное изображение на электронную почту. Я испробовал почти все возможные способы, но не повезло.

Я могу добавлять изображения как встроенные, но они также появляются во вложениях, поэтому я не могу избежать этого вложения.

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 );, но все равно не повезло.

Ответы [ 2 ]

0 голосов
/ 20 мая 2019

Вам необходимо создать составное / связанное сообщение. JavaMail FAQ имеет пример.

0 голосов
/ 20 мая 2019

Изучите использование MimeMessageHelper. Это сделает вашу жизнь проще

MimeMessageHelper helper = new MimeMessageHelper( mimeMessage, true );
helper.setText( htmlText, true );
helper.addInline( "image", signatureImage ); // image here is the cid
...