⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 getmailtest.java

📁 java应用开发详解
💻 JAVA
字号:
import java.util.*;import java.io.*;import javax.mail.*;import javax.mail.internet.*;import javax.activation.*;public class GetMailTest {    	//收邮件的参数    	static String protocol = "pop3";    	static String host = "localhost";    	static String user = "mellon";    	static String password = "1234";    	static String mbox = "inbox";    	static String url = null;    	static int port = 110;    	static boolean verbose = true;    	static boolean debug = true;    	static boolean showStructure = false;    	public static void main(String argv[])     	{		boolean total = true;			Folder folder = null;	        	try         	{	    		//收邮件	    		Properties props = System.getProperties();	    		Session session = Session.getDefaultInstance(props, null);	    		session.setDebug(debug);	    		Store store = session.getStore(protocol);			store.connect(host, port, user, password);	   	    		folder = store.getFolder(mbox);	    		if (folder == null) 	    		{	        		System.out.println("Invalid folder");	        		System.exit(1);	    		}	    		folder.open(Folder.READ_ONLY);			//得到邮件个数	    		int totalMessages = folder.getMessageCount();	    		if (totalMessages == 0) 	    		{				System.out.println("Empty folder");				folder.close(false);				store.close();				System.exit(1);	    		}	    		if (verbose) 	    		{				int newMessages = folder.getNewMessageCount();				System.out.println("Total messages = " + totalMessages);				System.out.println("New messages = " + newMessages);				System.out.println("-------------------------------");	    		}	    		if (total) 	    		{				// 得到所有的消息				Message[] msgs = folder.getMessages();				for (int i = 0; i < msgs.length; i++) 				{		    			System.out.println("--------------------------");		    			System.out.println("MESSAGE #" + (i + 1) + ":");		    					    			//处理信封		    			dumpEnvelope(msgs[i]);		    			//处理信件内容		    			dumpPart(msgs[i]);				}	    		} 	    		folder.close(false);	    		store.close();		} 		catch (Exception ex) 		{	    		System.out.println("Oops, got exception! " + ex.getMessage());	    		ex.printStackTrace();	    		System.exit(1);		}		System.exit(0);    	}    	public static void dumpPart(Part p) throws Exception     	{				//如果包含信封,处理信封		if (p instanceof Message)	    		dumpEnvelope((Message)p);		//输出内容类型		pr("CONTENT-TYPE: " + p.getContentType());		//输出文件名		String filename = p.getFileName();		if (filename != null) pr("FILENAME: " + filename);		//处理文本类型		if (p.isMimeType("text/plain")) 		{	    		pr("This is plain text");	    		pr("---------------------------");	    		if (!showStructure)				System.out.println((String)p.getContent());		} 		//处理multipart类型		else if (p.isMimeType("multipart/*")) 		{	    		pr("This is a Multipart");	    		pr("---------------------------");	    		Multipart mp = (Multipart)p.getContent();	    		int count = mp.getCount();	    		for (int i = 0; i < count; i++)			dumpPart(mp.getBodyPart(i));		} 		//处理message类型		else if (p.isMimeType("message/rfc822")) 		{	    		pr("This is a Nested Message");	    		pr("---------------------------");	    		dumpPart((Part)p.getContent());		} 		//详细信息		else if (!showStructure) 		{	    		Object o = p.getContent();	    		//打印字符串	    		if (o instanceof String) 	    		{				pr("This is a string");				pr("---------------------------");				System.out.println((String)o);	    		} 	    		//打印流	    		else if (o instanceof InputStream) 	    		{				pr("This is just an input stream");				pr("---------------------------");				InputStream is = (InputStream)o;				int c;				while ((c = is.read()) != -1)System.out.write(c);	    		} 	    		else 	    		{				pr("This is an unknown type");				pr("---------------------------");				pr(o.toString());	    		}		} 		else 		{	    		pr("This is an unknown type");	    		pr("---------------------------");		}    	}    	//处理信封    	public static void dumpEnvelope(Message m) throws Exception     	{				pr("This is the message envelope");		pr("---------------------------");		Address[] a;		// 发信人		if ((a = m.getFrom()) != null) 		{	    		for (int j = 0; j < a.length; j++)	    			pr("FROM: " + a[j].toString());		}		// 收信人		if ((a = m.getRecipients(Message.RecipientType.TO)) != null) 		{	    		for (int j = 0; j < a.length; j++)				pr("TO: " + a[j].toString());		}		// 信件标题		pr("SUBJECT: " + m.getSubject());		// 发送时间		Date d = m.getSentDate();		pr("SendDate: " +	    (d != null ? d.toString() : "UNKNOWN"));		// 信件标识,分系统标识和用户标识		Flags flags = m.getFlags();		StringBuffer sb = new StringBuffer();		Flags.Flag[] sf = flags.getSystemFlags(); 		boolean first = true;		for (int i = 0; i < sf.length; i++) 		{	    		String s;	    		Flags.Flag f = sf[i];	    		if (f == Flags.Flag.ANSWERED)				s = "\\Answered";	    		else if (f == Flags.Flag.DELETED)				s = "\\Deleted";	    		else if (f == Flags.Flag.DRAFT)				s = "\\Draft";	    		else if (f == Flags.Flag.FLAGGED)				s = "\\Flagged";	   		else if (f == Flags.Flag.RECENT)				s = "\\Recent";	    		else if (f == Flags.Flag.SEEN)				s = "\\Seen";	    		else				continue;	// skip it	    		if (first)				first = false;	    		else				sb.append(' ');	    		sb.append(s);		}		String[] uf = flags.getUserFlags(); 		for (int i = 0; i < uf.length; i++) 		{	    		if (first)				first = false;	    		else				sb.append(' ');	    			sb.append(uf[i]);		}		pr("FLAGS: " + sb.toString());		// 得到X-MAILER		String[] hdrs = m.getHeader("X-Mailer");		if (hdrs != null)	    		pr("X-Mailer: " + hdrs[0]);		else	    		pr("X-Mailer NOT available");    	}    	public static void pr(String s)     	{		System.out.println(s);    	}}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -