Professional Documents
Culture Documents
Email Tem
Email Tem
Properties;
import javax.mail.Address;
import javax.mail.Folder;
import javax.mail.Message;
import javax.mail.Message.RecipientType;
import javax.mail.MessagingException;
import javax.mail.NoSuchProviderException;
import javax.mail.Session;
import javax.mail.Store;
/**
* This program demonstrates how to get e-mail messages from a POP3/IMAP server
*
* @author www.codejava.net
*
*/
public class EmailReceiver {
/**
* Returns a Properties object which is configured for a POP3/IMAP server
*
* @param protocol either "imap" or "pop3"
* @param host
* @param port
* @return a Properties object
*/
private Properties getServerProperties(String protocol, String host,
String port) {
Properties properties = new Properties();
// server setting
properties.put(String.format("mail.%s.host", protocol), host);
properties.put(String.format("mail.%s.port", protocol), port);
// SSL setting
properties.setProperty(
String.format("mail.%s.socketFactory.class", protocol),
"javax.net.ssl.SSLSocketFactory");
properties.setProperty(
String.format("mail.%s.socketFactory.fallback", protocol),
"false");
properties.setProperty(
String.format("mail.%s.socketFactory.port", protocol),
String.valueOf(port));
return properties;
}
/**
* Downloads new messages and fetches details for each message.
* @param protocol
* @param host
* @param port
* @param userName
* @param password
*/
public void downloadEmails(String protocol, String host, String port,
String userName, String password) {
Properties properties = getServerProperties(protocol, host, port);
Session session = Session.getDefaultInstance(properties);
try {
// connects to the message store
Store store = session.getStore(protocol);
store.connect(userName, password);
if (contentType.contains("text/plain")
|| contentType.contains("text/html")) {
try {
Object content = msg.getContent();
if (content != null) {
messageContent = content.toString();
}
} catch (Exception ex) {
messageContent = "[Error downloading content]";
ex.printStackTrace();
}
}