JavaMail API Sending an HTML Email

Here is an example to send an HTML email from your machine. Here we have used SMPT server via which emails are sent to our destination email address.

This example is very similar to sending simple email, except that, here we are using setContent() method to set content whose second argument is "text/html" to specify that the HTML content is included in the message. Using this example, you can send as big as HTML content you like.

For receiving or sending the email using JavaMail API, you need to load the two jar files:
  • mail.jar
  • activation.jar

To send a email with HTML content, the steps followed are:
  1. Get a Session
  2. Create a default MimeMessage object and set From, To, Subject in the message.
  3. Set the actual message using setContent() method as below:
    This is actual message embedded in HTML tags</h1>
    ", "text/html");
  4. Send the message using the Transport object.

Example of sending email with html content using JavaMail API-
Create a java class file SendHTMLEmail, the contents of which are as follows:
import java.util.Properties;
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.MimeMessage;
public class SendHtmlEmail {
 public static void main(String[] args) {
  Properties props = new Properties();
  props.put("", "");
  props.put("mail.smtp.socketFactory.port", "465");
  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(""));
   message.setSubject("Welcome Mail Tutorial!!!");
   // Send the actual HTML message, as big as you like
   message.setContent("<h1>Dear User,\n\n This mail tutorial really nice, please try it!!!</h1>", "text/html");
   message.setContent("<h1>sending html mail check</h1>","text/html" ); 
   System.out.println("Mail sent successfully!!!");
  } catch (MessagingException e) {
   throw new RuntimeException(e);

As we are using the SMTP server provided by the host provider SMTP, we need to authenticate the username and password. The javax.mail.PasswordAuthentication class is used to authenticate the password.

Verify Output
You should see the following message on the command console:

Mail sent successfully!!!

As I'm sending an email to my gmail address through SMTP, the following mail would be received in my gmail account inbox:

<<Previous <<   || Index ||   >>Next >>

No comments:

Post a Comment