Send HTML content in email using JavaMail API

We are explaining here an example of sending HTML content in email using JavaMail API.

Steps of sending HTML content in email using JavaMail API:

    1. Get a session instance from getDefaultInstance() or getInstance() method of Session class.
    2. Create a message we have to pass session object in MimeMessage class constructor.
    3. Use the InternetAddress class to set the information of sender and recipient.
    4. Complose the message by using MimeMessage class methods like setFrom(Address address), addRecipients(Message.RecipientType type, String addresses), setSubject(String subject), setText(String textmessage) etc.
    5. Use send() method of javax.mail.Transport class to send the message.

Example:

import java.util.*;  
import javax.mail.*;  
import javax.mail.internet.*;  
/**
 * This class is used to send email with HTML content.
 * @author w3schools
 */
public class SendEmailWithHTML { 
 final String senderEmailId = "[email protected]";
 final String senderPassword = "****";
 final String emailSMTPserver = "smtpout.secureserver.net";
 
public SendEmailWithHTML(String receiverEmail, 
		String subject, String htmlContent, 
		String contentType) {		
	Properties props = new Properties();
	props.put("mail.smtp.auth", "true");
	props.put("mail.smtp.host", emailSMTPserver);
 
  try { 			
	Authenticator auth = new SMTPAuthenticator();
        Session session = Session.getInstance(props, auth);
	Message message = new MimeMessage(session);
	message.setFrom(new InternetAddress(senderEmailId));
	message.setRecipients(Message.RecipientType.TO, 
			InternetAddress.parse(receiverEmail));
	message.setSubject(subject);
	message.setContent(htmlContent, contentType);
 
	Transport.send(message); 
	System.out.println("Email send successfully."); 
  } catch (Exception e) {
	e.printStackTrace();
    System.err.println("Error in sending email.");
  }
}
 
private class SMTPAuthenticator extends 
  javax.mail.Authenticator {
    public PasswordAuthentication 
      getPasswordAuthentication() {
        return new PasswordAuthentication(senderEmailId, 
        		senderPassword);
    }
}
 
public static void main(String[] args) {
	new SendEmailWithHTML ("[email protected]", "Test Email", 
	 "<h1>This is a html content test email.</h1>", "text/html");
}
}

Output:

Email send successfully.

Download this example.
 
Next Topic: Send inline image with example.
Previous Topic: Send email with attachment with example.