?? getmail.java
字號:
package cn.js.fan.mail;import javax.mail.*;import java.util.*;import cn.js.fan.util.ErrMsgException;import cn.js.fan.util.StrUtil;import org.apache.log4j.Logger;public class GetMail { static boolean debug = true; String user = ""; String pwd = ""; String server = ""; Message[] msgs = null; Vector mailmsgs = null; int port = 110; Store store = null; Folder folder = null; Logger logger = Logger.getLogger( GetMail.class.getName() ); public GetMail(String server, String user, String pwd) { this.server = server; this.user = user; this.pwd = pwd; } public GetMail(String server, int port, String user, String pwd) { this.server = server; this.user = user; this.pwd = pwd; this.port = port; } protected void finalize() throws Throwable { super.finalize(); if (mailmsgs != null) { mailmsgs.removeAllElements(); mailmsgs = null; } } public Message[] receive(String type) throws ErrMsgException { if (type==null) return null; try { Properties props = System.getProperties(); Session session = Session.getDefaultInstance(props, null); store = session.getStore("pop3"); store.connect(server, port, user, pwd); folder = store.getDefaultFolder(); if(folder == null) throw new ErrMsgException("找不到默認目錄"); folder = folder.getFolder("INBOX"); if(folder == null) throw new ErrMsgException("無 POP3 INBOX"); folder.open(Folder.READ_ONLY); msgs = folder.getMessages(); } catch (Exception ex) { logger.error("receive:"+ex.getMessage()); ex.printStackTrace(); throw new ErrMsgException(ex.getMessage()); } return msgs; } public void close() { try { if (folder != null) folder.close(false); } catch (Exception ex2) { logger.error("receive:" + ex2.getMessage()); } try { if (store != null) store.close(); } catch (Exception ex2) { logger.error("receive:" + ex2.getMessage()); ex2.printStackTrace(); } } public MailMsg getMessageOfNum(int i) { Store store = null; Folder folder = null; MailMsg mailmsg = null; try { Properties props = System.getProperties(); Session session = Session.getDefaultInstance(props, null); store = session.getStore("pop3"); store.connect(server, port, user, pwd); folder = store.getDefaultFolder(); if(folder == null) throw new ErrMsgException("找不到默認目錄"); folder = folder.getFolder("INBOX"); if(folder == null) throw new ErrMsgException("無 POP3 INBOX"); folder.open(Folder.READ_ONLY); Message msg = folder.getMessage(i); mailmsg = new MailMsg(msg,true); } catch (Exception ex) { ex.printStackTrace(); } finally { try { if (folder!=null) folder.close(false); } catch (Exception ex2) { ex2.printStackTrace(); } try { if (store!=null) store.close(); } catch (Exception ex2) { ex2.printStackTrace(); } } return mailmsg; } public boolean delMessageOfNum(String[] mailids) { Store store = null; Folder folder = null; MailMsg mailmsg = null; try { Properties props = System.getProperties(); Session session = Session.getDefaultInstance(props, null); store = session.getStore("pop3"); store.connect(server, port, user, pwd); folder = store.getDefaultFolder(); if(folder == null) throw new ErrMsgException("找不到默認目錄"); folder = folder.getFolder("INBOX"); if(folder == null) throw new ErrMsgException("無 POP3 INBOX"); folder.open(Folder.READ_WRITE); int len = mailids.length; for (int i=0; i<len; i++) { if (!StrUtil.isNumeric(mailids[i])) return false; logger.error("msg deled num:"+mailids[i]); Message msg = folder.getMessage(Integer.parseInt(mailids[i])); msg.setFlag(Flags.Flag.DELETED, true); } } catch (Exception ex) { ex.printStackTrace(); return false; } finally { try { if (folder!=null) folder.close(true); } catch (Exception ex2) { ex2.printStackTrace(); } try { if (store!=null) store.close(); } catch (Exception ex2) { ex2.printStackTrace(); } } return true; } public Attachment getAttachment(int msgnum, int attachnum) { Store store = null; Folder folder = null; MailMsg mailmsg = null; Attachment a = null; try { Properties props = System.getProperties(); Session session = Session.getDefaultInstance(props, null); store = session.getStore("pop3"); System.out.println("server=" + server + " port=" + port + " user=" + user + " pwd=" + pwd); store.connect(server, port, user, pwd); folder = store.getDefaultFolder(); if(folder == null) throw new ErrMsgException("找不到默認目錄"); folder = folder.getFolder("INBOX"); if(folder == null) throw new ErrMsgException("無 POP3 INBOX"); folder.open(Folder.READ_ONLY); Message msg = folder.getMessage(msgnum); mailmsg = new MailMsg(msg); a = mailmsg.getAttachment(attachnum); } catch (Exception ex) { ex.printStackTrace(); } finally { try { if (folder!=null) folder.close(false); } catch (Exception ex2) { ex2.printStackTrace(); } try { if (store!=null) store.close(); } catch (Exception ex2) { ex2.printStackTrace(); } } return a; } public MailMsg getMessage(Message message) { MailMsg msg = new MailMsg(message, false); try { } catch(Exception ex) { ex.printStackTrace(); } return msg; }}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -