<div dir="ltr" style="text-align: justify;">
<div dir="ltr" style="text-align: justify;">
<p>In the previous article, we have looked at sending mail with Java Mail API.Sending e-mail was relatively simple with only one protocol (SMTP) to handle. But Reception involves two protocols, POP3 and IMAP. POP3 is the older protocol, which offers a single queue of mail messages as a single inbox. IMAP is the more modern protocol, which presents mail messages as entries in a hierarchy of folders, one of which will be an inbox.</p>
<h2>Receiving email using JavaMail API</h2>
<p>Java Mail comes with Provider implementations for POP3 and IMAP, and the secure versions of those as POP3S and IMAPS.</p>
<p>For sending the email using JavaMail API, you need to load the two jar files:</p>
<ul style="text-align: left;">
<li>mail.jar</li>
<li>activation.jar</li>
</ul>
<h3><b>Steps involved in receive mail:</b></h3>
<p><b>Step 1:</b> Define the mail properties (i.e.) Define the protocol, mail server by using the properties class.</p>
<p><b>Step 2:</b> Create the session for read the mail with the properties which we already defined.</p>
<p><b>Step 3:</b> Create and connect the store for read the mail.</p>
<p><b>Step 4: </b>Define and open the folder which we need to read. Open the folder in read-only mode.</p>
<p><b>Step 5:</b> Search the unread contents in the specified folder and stored it into messages array.</p>
<p><b>Step 6:</b> Display the messages.</p>
<h2><b>Example of Receiving email using JavaMail API-</b></h2>
<p>Let&#8217;s see the example of receiving the mail using java mail api.</p>
<pre class="highlight">import java.io.IOException; 
import java.util.Properties; 
import javax.mail.Folder; 
import javax.mail.Message; 
import javax.mail.MessagingException; 
import javax.mail.NoSuchProviderException; 
import javax.mail.PasswordAuthentication; 
import javax.mail.Session; 
import com.sun.mail.pop3.POP3Store; 
import javax.mail.*; 
public class ReceiveMail{ 
 
 public static void receiveEmail(String pop3Host, String storeType, 
 final String user, final String password) { 
 try { 
 //1) get the session object 
 Properties properties = new Properties(); 
 properties.put("mail.store.protocol", "imaps"); 
 //Session emailSession = Session.getDefaultInstance(properties); 
 Session emailSession = Session.getDefaultInstance(properties, 
 new javax.mail.Authenticator() { 
 protected PasswordAuthentication getPasswordAuthentication() { 
 return new PasswordAuthentication(user,password); 
 } 
 }); 
 //2) create the POP3 store object and connect with the pop server 
 Store emailStore = emailSession.getStore("imaps"); 
 emailStore.connect("imap.gmail.com","dineshonjava@gmail.com", password); 
 
 
 //3) create the folder object and open it 
 Folder emailFolder = emailStore.getFolder("INBOX"); 
 emailFolder.open(Folder.READ_ONLY); 
 
 //4) retrieve the messages from the folder in an array and print it 
 Message[] messages = emailFolder.getMessages(); 
 for (int i = 0; i <; messages.length; i++) { 
 Message message = messages[i]; 
 System.out.println("---------------------------------"); 
 System.out.println("Email Number " + (i + 1)); 
 System.out.println("Subject: " + message.getSubject()); 
 System.out.println("From: " + message.getFrom()[0]); 
 System.out.println("Text: " + message.getContent().toString()); 
 } 
 
 //5) close the store and folder objects 
 emailFolder.close(false); 
 emailStore.close(); 
 
 } catch (NoSuchProviderException e) {e.printStackTrace();} 
 catch (MessagingException e) {e.printStackTrace();} 
 catch (IOException e) {e.printStackTrace();} 
 } 
 
 public static void main(String[] args) { 
 
 String host = "smtp.gmail.com";//change accordingly 
 String mailStoreType = "pop3"; 
 final String username= "dineshonjava@gmail.com"; 
 final String password= "*******";//change accordingly 
 
 receiveEmail(host, mailStoreType, username, password); 
 
 } 
} 
</pre>
<p>As you can see in the above example, userid and password need to be authenticated. As, this program illustrates, you can receive email easily but change the username and password accordingly.</p>
<div class="separator" style="clear: both; text-align: center;"><img src="https://dineshonjava.com/wp-content/uploads/2014/01/1111-14-665x1024.png" border="0" /></div>
<p> ;</p>
</div>
<div style="background-color: pink; border-width: thin; text-align: center;"><b><;<;<a href="https://dineshonjava.com/send-email-via-gmail-smtp/">Previous</a> <;<; || <a href="https://dineshonjava.com/java-mail-api-tutorial/">Index </a>|| >;>;<a href="https://dineshonjava.com/sending-email-with-attachments-using/" target="_blank" rel="noopener">Next</a> >;>;</b></div>
</div>
<div class="wp-post-navigation"> 
									 <div class="wp-post-navigation-pre"> 
									 <a href="https://dineshonjava.com/send-email-via-gmail-smtp/">Previous</a> 
									 </div> 
									 <div class="wp-post-navigation-next"> 
									 <a href="https://dineshonjava.com/sending-email-with-attachments-using/">Next</a> 
									 </div> 
									</div>
<script type="text/javascript">
jQuery(document).ready(function($) {
 $.post('https://dineshonjava.com/wp-admin/admin-ajax.php', {action: 'mts_view_count', id: '246'});
});
</script>
Strategy Design Patterns We can easily create a strategy design pattern using lambda. To implement…
Decorator Pattern A decorator pattern allows a user to add new functionality to an existing…
Delegating pattern In software engineering, the delegation pattern is an object-oriented design pattern that allows…
Technology has emerged a lot in the last decade, and now we have artificial intelligence;…
Managing a database is becoming increasingly complex now due to the vast amount of data…
Overview In this article, we will explore Spring Scheduler how we could use it by…