<div dir="ltr" style="text-align: justify;">
<div dir="ltr" style="text-align: justify;">
<p>Here is an example to send an HTML email from your machine with inline image. Here we have used SMPT server via which emails are sent to our destination email address.</p>
<h2><b>To send a email with an inline image, the steps followed are:</b></h2>
<ol style="text-align: left;">
<li>Get a <i><b>Session</b></i></li>
<li>Create a default <i><b>MimeMessage </b></i>object and set From, To, Subject in the message.</li>
<li>Create a <i><b>MimeMultipart </b></i>object.</li>
<li>In our example we will have an HTML part and an Image in the email. So first create the HTML content and set it in the multipart object as:
<pre class="highlight">// first part (the html) 
BodyPart messageBodyPart = new MimeBodyPart(); 
String htmlText = "<;H1>;Hello<;/H1>;<;img src="cid:image">;"; 
messageBodyPart.setContent(htmlText, "text/html"); 
// add it 
multipart.addBodyPart(messageBodyPart); 
</pre>
</li>
<li>Next add the image by creating a <i><b>Datahandler </b></i>as follows:
<pre class="highlight">// second part (the image) 
messageBodyPart = new MimeBodyPart(); 
DataSource fds = new FileDataSource("D:Javasmailapi100.png"); 
messageBodyPart.setDataHandler(new DataHandler(fds)); 
messageBodyPart.setHeader("Content-ID", "<;image>;"); 
</pre>
</li>
<li>Next set the multipart in the message as follows:
<pre class="highlight">// second part (the image) 
message.setContent(multipart); 
</pre>
</li>
<li>Send the message using the <b><i>Transport </i></b>object.</li>
</ol>
<h2><b>Example of sending email with Inline Images <i>JavaMail </i>API-</b></h2>
<pre class="highlight">import java.util.Properties; 
import javax.activation.DataHandler; 
import javax.activation.DataSource; 
import javax.activation.FileDataSource; 
import javax.mail.BodyPart; 
import javax.mail.Message; 
import javax.mail.MessagingException; 
import javax.mail.PasswordAuthentication; 
import javax.mail.Session; 
import javax.mail.Transport; 
import javax.mail.internet.InternetAddress; 
import javax.mail.internet.MimeBodyPart; 
import javax.mail.internet.MimeMessage; 
import javax.mail.internet.MimeMultipart; 
 
public class SendInlineImagesInEmail { 
 public static void main(String[] args) { 
 Properties props = new Properties(); 
 props.put("mail.smtp.host", "smtp.gmail.com"); 
 props.put("mail.smtp.socketFactory.port", "465"); 
 props.put("mail.smtp.socketFactory.class","javax.net.ssl.SSLSocketFactory"); 
 props.put("mail.smtp.auth", "true"); 
 props.put("mail.smtp.port", "465"); 
 final String username="dineshonjava"; 
 final String password="***********"; 
 Session session = Session.getDefaultInstance(props, 
 new javax.mail.Authenticator() { 
 protected PasswordAuthentication getPasswordAuthentication() { 
 return new PasswordAuthentication(username,password); 
 } 
 }); 
 
 try { 
 Message message = new MimeMessage(session); 
 message.setFrom(new InternetAddress("dineshonjava@gmail.com")); 
 message.setRecipients(Message.RecipientType.TO,InternetAddress.parse("admin@dineshonjava.com")); 
 message.setSubject("Welcome Mail Tutorial!!!"); 
 
 // This mail has 2 part, the BODY and the embedded image 
 MimeMultipart multipart = new MimeMultipart("related"); 
 // first part (the html) 
 BodyPart messageBodyPart = new MimeBodyPart(); 
 String htmlText = "<;H1>;Hello<;/H1>;<;img src="cid:image">;"; 
 messageBodyPart.setContent(htmlText, "text/html"); 
 // add it 
 multipart.addBodyPart(messageBodyPart); 
 // second part (the image) 
 messageBodyPart = new MimeBodyPart(); 
 DataSource fds = new FileDataSource("D:Javasmailapi100.png"); 
 messageBodyPart.setDataHandler(new DataHandler(fds)); 
 messageBodyPart.setHeader("Content-ID", "<;image>;"); 
 // add image to the multipart 
 multipart.addBodyPart(messageBodyPart); 
 // put everything together 
 message.setContent(multipart); 
 // Send the actual HTML message, as big as you like 
 Transport.send(message); 
 System.out.println("Mail sent successfully!!!"); 
 
 } catch (MessagingException e) { 
 throw new RuntimeException(e); 
 } 
 } 
} 
</pre>
<p>As we are using the SMTP server provided by the host provider SMTP, we need to authenticate the username and password. The <b><i>javax.mail.PasswordAuthentication</i></b> class is used to authenticate the password.</p>
<div class="separator" style="clear: both; text-align: center;"><img src="https://dineshonjava.com/wp-content/uploads/2014/01/1111-7.png" border="0" /></div>
<h2>Verify Output</h2>
<p>You should see the following message on the command console:</p>
<p><i>Mail sent successfully!!!</i></p>
<p>As I&#8217;m sending an email to my gmail address through SMTP, the following mail would be received in my gmail account inbox:</p>
<div class="separator" style="clear: both; text-align: center;"><img src="https://dineshonjava.com/wp-content/uploads/2014/01/1111-8.png" border="0" /></div>
<p> ;</p>
</div>
<p> ;</p>
<div style="background-color: pink; border-width: thin; text-align: center;"><b><;<;<a href="https://dineshonjava.com/javamail-api-sending-html-email/">Previous</a> <;<; || <a href="https://dineshonjava.com/java-mail-api-tutorial/">Index </a>|| >;>;<a href="https://dineshonjava.com/forwarding-messages-using-java-mail/" target="_blank" rel="noopener">Next</a> >;>;</b></div>
</div>
<div class="wp-post-navigation"> 
									 <div class="wp-post-navigation-pre"> 
									 <a href="https://dineshonjava.com/javamail-api-sending-html-email/">Previous</a> 
									 </div> 
									 <div class="wp-post-navigation-next"> 
									 <a href="https://dineshonjava.com/forwarding-messages-using-java-mail/">Next</a> 
									 </div> 
									</div>
<script type="text/javascript">
jQuery(document).ready(function($) {
 $.post('https://dineshonjava.com/wp-admin/admin-ajax.php', {action: 'mts_view_count', id: '242'});
});
</script>
Strategy Design Patterns We can easily create a strategy design pattern using lambda. To implement…
Decorator Pattern A decorator pattern allows a user to add new functionality to an existing…
Delegating pattern In software engineering, the delegation pattern is an object-oriented design pattern that allows…
Technology has emerged a lot in the last decade, and now we have artificial intelligence;…
Managing a database is becoming increasingly complex now due to the vast amount of data…
Overview In this article, we will explore Spring Scheduler how we could use it by…