23.4.09

Receiver Mail via Gmail POP3

รับ mail ของ gmail ผ่าน pop3

import java.util.Properties;
import javax.mail.Folder;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Store;
import javax.mail.URLName;
import com.sun.mail.pop3.POP3SSLStore;

public class SimpleReceiver {

public static void main(String[] args) {
try {
String popServer = "pop.gmail.com";
String user = "yourmail@gmail.com";
String password = "yourpassword";
System.out.println("receive mail");
receive(popServer, user, password);
System.out.println("--- complete ---");
} catch (Exception ex) {
ex.printStackTrace();
}
}

public static void receive(String popServer, String user, String password) {
Store store = null;
Folder folder = null;
try {
String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory";
Properties props = System.getProperties();
props.setProperty("mail.pop3.socketFactory.class", SSL_FACTORY);
props.setProperty("mail.pop3.socketFactory.fallback", "false");
props.setProperty("mail.pop3.port", "995");
props.setProperty("mail.pop3.socketFactory.port", "995");

URLName url = new URLName("pop3", popServer, 995, "", user, password);

Session session = Session.getDefaultInstance(props, null);

System.out.println("connect");
store = new POP3SSLStore(session, url);
store.connect();

System.out.println("folder");
folder = store.getDefaultFolder();
folder = folder.getFolder("inbox");
if (folder == null) {
throw new Exception("No default folder");
}

try {
folder.open(Folder.READ_WRITE);
} catch (MessagingException ex) {
folder.open(Folder.READ_ONLY);
}

System.out.println("message: " + folder.getMessageCount());
System.out.println("new: " + folder.getNewMessageCount());

Message[] message = folder.getMessages();
// FetchProfile fp = new FetchProfile();
// fp.add(FetchProfile.Item.ENVELOPE);
// folder.fetch(message, fp);
for (int i = 0; i<message.length; i++) {
String ct = message[i].getContentType();
if (message[i].isMimeType("text/plain")) {
System.out.println("message [" + i + "]:" + message[i].getContent());
} else {
System.out.println("message [" + i + "]:" + "not plain text.");
}

}

} catch (Exception ex1) {
ex1.printStackTrace();
} finally {
try {
if (folder != null) folder.close(false);
if (store != null) store.close();
} catch (Exception ex2) {
ex2.printStackTrace();
}
}
}

}

No comments:

Post a Comment