If the images are external image links that can be accessed by http url, then nothing speical needs to be done.
If the images are external image files, then you have 2 choices.
Embed the images as base64 strings. . This is simple. However email clients such as gmail will refuse to render them
Using cid. This is the most robust way. An example can be found here . In addition, you should set the content type of the image body part as "image/png", otherwise the email receipients will see there are attachments
MimeBodyPart imagePart = new MimeBodyPart(); DataSource fds = new FileDataSource(imageFile); imagePart.setDataHandler(new DataHandler(fds)); imagePart.setHeader("Content-ID", "<" + imageFile.getName() + ">"); imagePart.setHeader("Content-Type", "image/png");