10.17. Checking a POP3 Mailbox
Problem
You need to check a POP3 mailbox.
Solution
Use Commons Net POP3Client
to check a POP3 mailbox
for incoming mail. The following example connects to the
POP3
server www.discursive.com
, logs in as
tobrien@discursive.com
, and prints each message in
the mailbox:
import org.apache.commons.io.CopyUtils; import org.apache.commons.io.IOUtils; import org.apache.commons.net.pop3.POP3Client; import org.apache.commons.net.pop3.POP3MessageInfo; POP3Client client = new POP3Client( ); client.connect("www.discursive.com"); client.login("tobrien@discursive.com", "secretpassword"); POP3MessageInfo[] messages = client.listMessages( ); for (int i = 0; i < messages.length; i++) { int messageNum = messages[i].number; System.out.println( "************* Message number: " + messageNum ); Reader reader = client.retrieveMessage( messageNum ); System.out.println( "Message:\n" + IOUtils.toString( reader ) ); IOUtils.closeQuietly( reader ); } client.logout( ); client.disconnect( );
This example calls client.listMessage()
to get an array of
POP3MessageInfo
objects. Each message is retrieved
using the message number contained in each
POP3MessageInfo
. To retrieve the contents of an
individual message, the message number is passed to
retrieveMessage()
, which returns a Reader
from which the message body is read. The previous example prints the
contents of a POP3 mailbox, as shown below:
************* Message number: 1 Message: Return-Path: <jerk@spamheaven.net> X-Original-To: ...
Get Jakarta Commons Cookbook now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.