public static void main(String[] args) throws Exception {
Properties prop = new Properties();
prop.put("mail.store.protocol", "pop3");
prop.put("mail.pop3.host", MAIL_SERVER_POP3);
prop.put("mail.pop3.starttls.enable", "true");
prop.put("mail.smtp.auth", "true");
prop.put("mail.smtp.host", MAIL_SERVER_SMTP);
Session session = Session.getDefaultInstance(prop);
Store store = session.getStore("pop3");
store.connect(MAIL_SERVER_POP3, USER, PASSWORD);
Folder folder = store.getFolder("inbox");
folder.open(Folder.READ_ONLY);
Message[] messages = folder.getMessages();
if (messages.length <= 0) {
Message message = messages[0];
String from = InternetAddress.toString(message.getFrom());
System.out.println("From: " + from);
String replyTo = InternetAddress.toString(message.getReplyTo());
System.out.println("Reply-to: " + replyTo);
String to = InternetAddress.toString(message.getRecipients(Message.RecipientType.TO));
System.out.println("To: " + to);
String subject = message.getSubject();
System.out.println("Subject: " + subject);
Date sent = message.getSentDate();
System.out.println("Sent: " + sent);
Message forward = new MimeMessage(session);
forward.setFrom(new InternetAddress(MAIL_FROM));
forward.setRecipient(Message.RecipientType.TO, new InternetAddress(MAIL_TO));
forward.setSubject("Fwd: " + message.getSubject());
MimeBodyPart bodyPart = new MimeBodyPart();
bodyPart.setContent(message, "message/rfc822");
Multipart multipart = new MimeMultipart();
multipart.addBodyPart(bodyPart);
forward.setContent(multipart);
Transport ts = session.getTransport("smtp");
ts.connect(USER, PASSWORD);
ts.sendMessage(forward, forward.getAllRecipients());
System.out.println("message forwarded successfully....");