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

📄 remotemailmanagement.java

📁 Mail Of Java
💻 JAVA
字号:
/** 仿造foxmail远程油箱管理数据模型用message[]做所用主要技术:storeURLNameMVC JTableFetchProfile类*/package mailofjava;import javax.mail.*;import javax.mail.internet.*;import javax.swing.*;import javax.swing.table.*;import java.awt.*;import java.awt.event.*;import java.util.*;/** 用表格形式显示邮件头列表,用model封装的邮件列表,不处理内容和附件*/public class RemoteMailManagement extends JFrame {   JTable jtable;   JScrollPane jsp;   public RemoteMailManagement() {     MessageModel mdl=new MessageModel();     jtable=new JTable(mdl);     jtable.setAutoCreateColumnsFromModel(true);     jtable.setAutoResizeMode(0);     jsp=new JScrollPane();     jsp.getViewport().add(jtable);     this.getContentPane().add(jsp);   }   public static void main(String[] args) {    RemoteMailManagement remoteMailManagement1 = new RemoteMailManagement();    remoteMailManagement1.addWindowListener(        new WindowAdapter(){            public void WindowsListener(WindowEvent we){              System.exit(0);            };       }//adapter      );   remoteMailManagement1.setSize(600,300);   remoteMailManagement1.setVisible(true);  }}/** 本类模式用于封装msg[]数组,返回某邮件的from/to/subject等数据*/class MessageModel extends AbstractTableModel{  public   static final int MAIL_SUBJECT=0;  public    static final int MAIL_FROM=1;  public    static final int MAIL_TO=2;  public    static final int MAIL_DATE=3;  public    static final int MAIL_REPLYTO=4;  Message[]  msg;  /**构造:取得新邮件列表数据*/  public MessageModel(){     CreateMessage msg1=new CreateMessage();     msg=msg1.getMessage() ;  }//constructor  public int getColumnCount() {//有几行呢? /*有subject  ,from ,to,received date,reply to 5个字段 */    return 5;  }  public int getRowCount() {//行数就是信息之条数,在构造前做的?    int i=msg.length ;    return i ;  }  /** 取得指定位置的元素*/  public Object getValueAt (int row, int column) {//取得值,好象是容器回调的    if(row> msg.length)    {    System.err.println("out of range");         System.exit(1);    };  try{    switch(column){      case  MessageModel.MAIL_DATE:      {        Date dd=msg[row].getSentDate() ;        if (dd==null)           return "无时间";         else           return dd.toString() ;      };      case  MessageModel.MAIL_FROM:      {        Address[] add;        add =  msg[row].getFrom()  ;        return add[0].toString() ;      };      case MessageModel.MAIL_REPLYTO: return  msg[row].getReplyTo()[0].toString() ;      case  MessageModel.MAIL_SUBJECT : return msg[row].getSubject() ;      case MessageModel.MAIL_TO : return msg[row].getRecipients(Message.RecipientType.TO )[0].toString() ;          default: return "不清楚";    }//switch  }catch(Exception e){ System.err.println("getvalu"); e.printStackTrace() ;};  return "error";  }  public String getColumnName (int columnIndex) {      switch(columnIndex)      {         case  MessageModel.MAIL_DATE: return "日期";         case  MessageModel.MAIL_FROM: return "来自";         case MessageModel.MAIL_REPLYTO: return "回复到";         case  MessageModel.MAIL_SUBJECT : return "主题";         case MessageModel.MAIL_TO : return "寄达";          default: return "不清楚";      }   }//GETCOLUMNNAME}/** 这是个各模块用的公用类,用于连接服务器取得数据*/class CreateMessage{  Properties prop;  Session session;  protected  Message[]  msg;  URLName urlname;  Store mailstore;  Folder root,inbox ;  Flags flg= new Flags();  FetchProfile fp;//取得指定的内容  int openMode=0; /**设定以只读形式打开folder与否*/ public void setOpenMode(int mode){   if (mode==1)       openMode=1;   else      openMode=0;  }  public CreateMessage(){  this.setOpenMode(0) ;  initMessage();  }  public CreateMessage(int mode){    this.setOpenMode(mode) ;    initMessage();  }/*取得服务器支持的标记*/public Flags getCFlags(){  flg = root.getPermanentFlags() ;  return flg;}/**连接服务器取得数据*/public void initMessage(){  fp=new FetchProfile();  fp.add(FetchProfile.Item.ENVELOPE );//取得信封  prop=new Properties();  urlname=new URLName("pop3","127.0.0.1",110,null,"Mirthrandir","916916916");  //urlname=new URLName("pop3","pop.163.net",110,null,"Zennhai","dfgrtyy");收外头的邮件  System.err.println("url: "+urlname.toString() );  prop.put("mail.transport.protocol","pop3");  prop.put("mail.store.protocol","pop3");  try{  session=Session.getDefaultInstance(prop,null);  mailstore= session.getStore(urlname);  mailstore.connect() ;  root=mailstore.getDefaultFolder() ;  inbox=root.getFolder("INBOX") ;  if(this.openMode ==0)   inbox.open(Folder.READ_ONLY );  else    inbox.open(Folder.READ_WRITE );   msg= inbox.getMessages() ;   inbox.fetch(msg,fp);//取得指定的字段,在msg里头了   System.err.println("msglength="+msg.length );   System.err.println("okay,mail fetched");   System.err.println("the date"+msg[0].getReceivedDate() ); } catch (Exception e){ e.printStackTrace() ;}; }//initMessage  public Message[] getMessage(){   return msg; }//}

⌨️ 快捷键说明

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