`
you_java
  • 浏览: 95496 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

java mail(接收邮件)

阅读更多

 

package com.util.mail;

import java.io.UnsupportedEncodingException;
import java.security.*;
import java.util.Properties;
import javax.mail.*;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeUtility;

/**
 * 用于收取Gmail邮件
 * 
 * @author Winter Lau
 */
public class GmailFetch {

	public static void main(String argv[]) throws Exception {

		Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());
		final String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory";

		// Get a Properties object
		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");

		// 以下步骤跟一般的JavaMail操作相同
		Session session = Session.getDefaultInstance(props, null);

		// 请将红色部分对应替换成你的邮箱帐号和密码
		URLName urln = new URLName("pop3", "pop.gmail.com", 995, null,
				"xxx@gmail.com", "***");
		Store store = session.getStore(urln);
		Folder inbox = null;
			store.connect();
			inbox = store.getFolder("INBOX");
			inbox.open(Folder.READ_ONLY);
			FetchProfile profile = new FetchProfile();
			profile.add(FetchProfile.Item.ENVELOPE);
			Message[] messages = inbox.getMessages();
			inbox.fetch(messages, profile);
			System.out.println("收件箱的邮件数:" + messages.length);
			for (int i = 0; i < messages.length; i++) {
				// 邮件发送者
				String from = decodeText(messages[i].getFrom()[0].toString());
				InternetAddress ia = new InternetAddress(from);
				System.out.println("FROM:" + ia.getPersonal() + '('
						+ ia.getAddress() + ')');
				// 邮件标题
				System.out.println("TITLE:" + messages[i].getSubject());
				// 邮件大小
				System.out.println("SIZE:" + messages[i].getSize());
				// 邮件发送时间
				System.out.println("DATE:" + messages[i].getSentDate());
				
				System.out.println("------++++++++------");
			}
			
			inbox.close(false);
			store.close();
	}

	protected static String decodeText(String text)
			throws UnsupportedEncodingException {
		if (text == null)
			return null;
		if (text.startsWith("=?GB") || text.startsWith("=?gb"))
			text = MimeUtility.decodeText(text);
		else
			text = new String(text.getBytes("ISO8859_1"));
		return text;
	}

}

 

 

package com.util.mail;

import java.io.UnsupportedEncodingException;
import java.security.*;
import java.util.Properties;
import javax.mail.*;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeUtility;

/**
 * 用于收取163邮件
 * 
 * @author Winter Lau
 */
public class Fetch163 {

	public static void main(String argv[]) throws Exception {

		Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());
		final String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory";

		// Get a Properties object
		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", "110");

		// 以下步骤跟一般的JavaMail操作相同
		Session session = Session.getDefaultInstance(props, null);

		// 请将红色部分对应替换成你的邮箱帐号和密码
		URLName urln = new URLName("pop3", "pop.163.com", 110, null,
				"xxx@163.com", "***");
		Store store = session.getStore(urln);
		Folder inbox = null;
			store.connect();
			inbox = store.getFolder("INBOX");
			inbox.open(Folder.READ_ONLY);
			FetchProfile profile = new FetchProfile();
			profile.add(FetchProfile.Item.ENVELOPE);
			Message[] messages = inbox.getMessages();
			inbox.fetch(messages, profile);
			System.out.println("收件箱的邮件数:" + messages.length);
			for (int i = 0; i < messages.length; i++) {
				// 邮件发送者
				String from = decodeText(messages[i].getFrom()[0].toString());
				InternetAddress ia = new InternetAddress(from);
				System.out.println("FROM:" + ia.getPersonal() + '('
						+ ia.getAddress() + ')');
				// 邮件标题
				System.out.println("TITLE:" + messages[i].getSubject());
				// 邮件大小
				System.out.println("SIZE:" + messages[i].getSize());
				// 邮件发送时间
				System.out.println("DATE:" + messages[i].getSentDate());
				
				System.out.println("------++++++++------");
			}
			
			inbox.close(false);
			store.close();
	}

	protected static String decodeText(String text)
			throws UnsupportedEncodingException {
		if (text == null)
			return null;
		if (text.startsWith("=?GB") || text.startsWith("=?gb"))
			text = MimeUtility.decodeText(text);
		else
			text = new String(text.getBytes("ISO8859_1"),"GBK");
		return text;
	}

}

package com.util.mail;

import java.security.Security;
import java.util.Properties;
import javax.mail.FetchProfile;
import javax.mail.Folder;
import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Store;
import javax.mail.UIDFolder;
import javax.mail.URLName;
import javax.mail.internet.MimeMessage;
import com.sun.mail.pop3.POP3Folder;

/**
 * UID速度要比messageID快好多倍,messageID下载的时候需要解析header里面头文件,所以费时
 * UID接收邮件
 */
public class ReceiveMail {

	public static void main(String[] args) throws Exception {
		Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());
		String host = "pop.gmail.com";
		String username = "xxx@gmail.com";
		String password = "***";
		Properties props = new Properties();
		final String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory";
		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");
		Session session = Session.getDefaultInstance(props, null);
		
		Store store = session.getStore("pop3");
		store.connect(host, username, password);
		Folder folder = store.getFolder("INBOX");
		folder.open(Folder.READ_ONLY);
		FetchProfile profile = new FetchProfile();
		profile.add(UIDFolder.FetchProfileItem.UID);
		profile.add(FetchProfile.Item.ENVELOPE);
		if (folder instanceof POP3Folder) {
			POP3Folder inbox = (POP3Folder) folder;
			Message message[] = inbox.getMessages();
			System.out.println("Messages's length: " + message.length);
			for (int i = 0; i < message.length; i++) {
				MimeMessage mimeMessage = (MimeMessage) message[i];
				String uid = inbox.getUID(mimeMessage);
				System.out.println("uid=" + uid);
				int UnreadMessageCount = inbox.getUnreadMessageCount();
				System.out.println("UnreadMessageCount=" + UnreadMessageCount);
				int NewMessageCount = inbox.getNewMessageCount();
				System.out.println("NewMessageCount=" + NewMessageCount);
				URLName urlName = inbox.getURLName();
				System.out.println("urlName=" + urlName);

			}
		}
	}
}
 
package com.util.mail;

import java.security.Security;
import java.util.Properties;
import javax.mail.FetchProfile;
import javax.mail.Folder;
import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Store;
import javax.mail.UIDFolder;
import javax.mail.URLName;
import javax.mail.internet.MimeMessage;
import com.sun.mail.pop3.POP3Folder;

/**
 * UID速度要比messageID快好多倍,messageID下载的时候需要解析header里面头文件,所以费时
 * UID接收邮件
 */
public class ReceiveMail {

	public static void main(String[] args) throws Exception {
		Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());
		String host = "pop.gmail.com";
		String username = "xxx@gmail.com";
		String password = "***";
		Properties props = new Properties();
		final String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory";
		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");
		Session session = Session.getDefaultInstance(props, null);
		
		Store store = session.getStore("pop3");
		store.connect(host, username, password);
		Folder folder = store.getFolder("INBOX");
		folder.open(Folder.READ_ONLY);
		FetchProfile profile = new FetchProfile();
		profile.add(UIDFolder.FetchProfileItem.UID);
		profile.add(FetchProfile.Item.ENVELOPE);
		if (folder instanceof POP3Folder) {
			POP3Folder inbox = (POP3Folder) folder;
			Message message[] = inbox.getMessages();
			System.out.println("Messages's length: " + message.length);
			for (int i = 0; i < message.length; i++) {
				MimeMessage mimeMessage = (MimeMessage) message[i];
				String uid = inbox.getUID(mimeMessage);
				System.out.println("uid=" + uid);
				int UnreadMessageCount = inbox.getUnreadMessageCount();
				System.out.println("UnreadMessageCount=" + UnreadMessageCount);
				int NewMessageCount = inbox.getNewMessageCount();
				System.out.println("NewMessageCount=" + NewMessageCount);
				URLName urlName = inbox.getURLName();
				System.out.println("urlName=" + urlName);

			}
		}
	}
}
 

分享到:
评论
1 楼 wilsonchen 2013-11-19  
楼主,谢谢分享。
请教一个问题,如何做到既分页又排序呢?

相关推荐

Global site tag (gtag.js) - Google Analytics