Send email with JavaMail

Simple email:

import javax.mail.*;
import javax.mail.internet.*;

import java.util.Properties;

class SimpleMail {
    public static void main(String[] args) throws Exception{
      Properties props = new Properties();
      props.setProperty("mail.transport.protocol", "smtp");
      props.setProperty("mail.host", "mymail.server.org");
      props.setProperty("mail.user", "emailuser");
      props.setProperty("mail.password", "");

      Session mailSession = Session.getDefaultInstance(props, null);
      Transport transport = mailSession.getTransport();

      MimeMessage message = new MimeMessage(mailSession);
      message.setSubject("Testing javamail plain");
      message.setContent("This is a test", "text/plain");
      message.addRecipient(Message.RecipientType.TO,
           new InternetAddress("maixuanviet.com@gmail.com"));

      transport.connect();
      transport.sendMessage(message,
          message.getRecipients(Message.RecipientType.TO));
      transport.close();
    }
}

HTML Email:

import javax.mail.*;
import javax.mail.internet.*;

import java.util.Properties;

class SimpleHTMLMail {
    public static void main(String[] args) throws Exception{
      Properties props = new Properties();
      props.setProperty("mail.transport.protocol", "smtp");
      props.setProperty("mail.host", "mymail.server.org");
      props.setProperty("mail.user", "emailuser");
      props.setProperty("mail.password", "");

      Session mailSession = Session.getDefaultInstance(props, null);
      Transport transport = mailSession.getTransport();

      MimeMessage message = new MimeMessage(mailSession);
      message.setSubject("Testing javamail html");
      message.setContent
         ("This is a test <b>HOWTO<b>", "text/html; charset=ISO-8859-1");
      message.addRecipient(Message.RecipientType.TO,
         new InternetAddress("maixuanviet.com@gmail.com"));

      transport.connect();
      transport.sendMessage(message,
         message.getRecipients(Message.RecipientType.TO));
      transport.close();
    }
}

Email with attachment:

import javax.mail.*;
import javax.mail.internet.*;
import javax.activation.FileDataSource;
import javax.activation.DataHandler;

import java.util.Properties;

class SimpleMailWithAttachment {
    public static void main(String[] args) throws Exception{
      boolean debug = false;
      Properties props = new Properties();
      props.setProperty("mail.transport.protocol", "smtp");
      props.setProperty("mail.host", "mymail.server.org");
      props.setProperty("mail.user", "emailuser");
      props.setProperty("mail.password", "");

      Session mailSession = Session.getDefaultInstance(props, null);
      mailSession.setDebug(debug);
      Transport transport = mailSession.getTransport();

      MimeMessage message = new MimeMessage(mailSession);
      message.setSubject("Testing javamail with attachment");

      MimeBodyPart textPart = new MimeBodyPart();
      textPart.setContent("<h1>Check attachment</h1>", "text/html");

      MimeBodyPart attachFilePart = new MimeBodyPart();
      FileDataSource fds = 
          new FileDataSource("SimpleMailWithAttachment.java");
      attachFilePart.setDataHandler(new DataHandler(fds));
      attachFilePart.setFileName(fds.getName());

      Multipart mp = new MimeMultipart();
      mp.addBodyPart(textPart);
      mp.addBodyPart(attachFilePart);

      message.setContent(mp);
      message.addRecipient(Message.RecipientType.TO,
          new InternetAddress("maixuanviet.com@gmail.com"));

      transport.connect();
      transport.sendMessage(message,
          message.getRecipients(Message.RecipientType.TO));
      transport.close();
    }
}

Done! Happy Coding!

Related posts:

Guide to BufferedReader
Remove the First Element from a List
Hướng dẫn Java Design Pattern – Strategy
Java Program to Implement the Alexander Bogomolny’s UnOrdered Permutation Algorithm for Elements Fro...
Spring Boot - Rest Template
“Stream has already been operated upon or closed” Exception in Java
Introduction to Java Serialization
Introduction to Using FreeMarker in Spring MVC
Java Program to Find Whether a Path Exists Between 2 Given Nodes
Hướng dẫn Java Design Pattern – Singleton
Java Program to Generate a Sequence of N Characters for a Given Specific Case
Converting Between an Array and a Set in Java
Quick Guide to Spring Controllers
Creating a Web Application with Spring 5
Java Program to Find Location of a Point Placed in Three Dimensions Using K-D Trees
Java Program to Implement Sieve Of Sundaram
Object cloning trong java
Hướng dẫn Java Design Pattern – Adapter
HttpClient 4 Cookbook
Spring Boot - Exception Handling
Java Program to Describe the Representation of Graph using Adjacency List
Giới thiệu Google Guice – Dependency injection (DI) framework
Daemon Threads in Java
How to Read a File in Java
ETags for REST with Spring
Handling Errors in Spring WebFlux
Java Program to Implement Ternary Search Tree
Rest Web service: Filter và Interceptor với Jersey 2.x (P2)
Tìm hiểu về Web Service
Running Spring Boot Applications With Minikube
Java Program to Implement Hash Tables with Quadratic Probing
Java Program to Construct a Random Graph by the Method of Random Edge Selection