Easy learning with example program codes

Forwarding emails using JavaMail API

We are explaining here an example of forwarding emails using JavaMail API.

Steps of forwarding email using JavaMail API:

    1. Get a session instance from getDefaultInstance() or getInstance() method of Session class.
    2. Create the store object (POP3) and connect to the pop store.
    3. Create the folder object by calling getFolder() method on store object and open it in mailbox.
    4. Get the messages from the folder object.
    5. Iterate the emails and get all information like to, from, subject, content etc.
    6. Retrieve the email message to be forwarded.
    7. Create the forward message object using Message.reply() method.
    8. Use send() method of javax.mail.Transport class to send the reply message.
    9. Close the Transport, folder and store objects.


import java.util.*;  
import javax.mail.*;  
import javax.mail.internet.*;
 * This class is used to reply email.
 * @author codesjava
public class EmailForwordTest {
final String username = "";
final String password = "****";
final String receiverEmail = "";
final String emailSMTPserver = "";
final String emailSMTPPort = "587";
final String mailStoreType = "pop3s";
public EmailForwordTest(String forwardedText){
 Properties props = new Properties(); 
 props.put("mail.smtp.auth", "true"); 
 props.put("mail.smtp.starttls.enable", "true"); 
 props.put("", emailSMTPserver); 
 props.put("mail.smtp.port", emailSMTPPort); 
try {
 Authenticator auth = new SMTPAuthenticator();
 Session session = Session.getInstance(props, auth);
 Store mailStore = session.getStore(mailStoreType);
 mailStore.connect(emailSMTPserver, username, password);
 Folder folder = mailStore.getFolder("INBOX");;
 Message[] messages = folder.getMessages();
 System.out.println("Total Message - " + messages.length);
 BufferedReader reader = 
 	new BufferedReader(new InputStreamReader(;
 for (int i = 0; i < messages.length; i++) {
   Message emailMessage = messages[i];
   System.out.println("Email " + (i+1) + " -");  
   System.out.println("Subject - " + emailMessage.getSubject());  
   System.out.println("From - " + emailMessage.getFrom()[0]); 
 System.out.print("Enter email number to " +
 		"which you want to forward: ");
 String emailNo = reader.readLine();
 Message emailMessage = 
	 folder.getMessage(Integer.parseInt(emailNo) - 1);
 Message mimeMessage = new MimeMessage(session);
 mimeMessage = (MimeMessage) emailMessage.reply(false);
 mimeMessage.setFrom(new InternetAddress(username));
 mimeMessage.setSubject("Fwd: " + mimeMessage.getSubject()); 
 System.out.println("Email message " +
   "forwarded successfully.");   
 } catch (Exception e) {
    System.err.println("Error in forwarding email.");
private class SMTPAuthenticator extends 
javax.mail.Authenticator {
  public PasswordAuthentication 
     getPasswordAuthentication() {
      return new PasswordAuthentication(username, 
public static void main(String[] args) {
 new EmailForwordTest("Forwarded Email Text.");


DEBUG POP3: server doesn't support TOP, disabling it
Total Message - 260
Email 1 -
Subject - Welcome to Twitter, codesjava
From - Twitter <>
Email 2 -
Subject - Hindustan Times retweeted a tweet from Twirus India on Twitter!
From - Twitter <>
Enter email number to which you want to forward: 2
Email message forwarded successfully.

Download this example.
Next Topic: Deleting emails with example.
Previous Topic: Replying emails with example.

Related Topics:

How to build java project using ant in eclipse?
JAXB marshalling – convert java object to xml example.
How to create pdf file in java using iText jar?
Generics class example.
OGNL in struts 2.
Hibernate One-to-One Mapping using xml.
Send inline image in email using JavaMail API.
Quartz 2 JobListener example.


Please follow and like us:

Copyright © 2019 CodesJava Protection Status SiteMap Reference: Java Wiki