android javamail 邮件备注内容

来源:互联网 发布:如何进入淘宝卖家后台 编辑:程序博客网 时间:2024/05/21 11:17

1.在读取邮件时,如果想要每次只读取3封。并且第一封显示的是最新的内容。

int length = 0;if(messages.length<4){//保证每次只能读取3条    length = messages.length + 1;}else{    length = 4;}
for (int i = messages.length - 1; i > messages.length - length; i--){}

这样,在取得时候就是从最新的邮件开始取得

2.在接收邮件时,通过过滤条件,接收自己要的邮件

    import java.io.BufferedReader;      import java.io.InputStreamReader;      import java.util.Properties;           import javax.mail.Flags;      import javax.mail.Folder;      import javax.mail.Message;      import javax.mail.Session;      import javax.mail.Store;      import javax.mail.search.AndTerm;      import javax.mail.search.FromStringTerm;      import javax.mail.search.SearchTerm;      import javax.mail.search.SubjectTerm;           /**       * 使用 java.mail.search 包中的 SearchTerm 类       * 在接收邮件时进行组合搜索、过滤       * @author haolloyin       */     public class SearchMails {          public static void main(String[] args) throws Exception {              // 连接pop3服务器的主机名、协议、用户名、密码              String pop3Server = "pop3.126.com";              String protocol = "pop3";              String user = "testhao";              String pwd = "123456";                            // 创建一个有具体连接信息的Properties对象              Properties props = new Properties();              props.setProperty("mail.store.protocol", protocol);              props.setProperty("mail.pop3.host", pop3Server);                            // 使用Properties对象获得Session对象              Session session = Session.getInstance(props);              session.setDebug(true);                            // 利用Session对象获得Store对象,并连接pop3服务器              Store store = session.getStore();              store.connect(pop3Server, user, pwd);                            // 获得邮箱内的邮件夹Folder对象,以"读-写"打开              Folder folder = store.getFolder("inbox");              folder.open(Folder.READ_WRITE);                                          // 搜索发件人为 test_hao@sina.cn 和主题为"测试1"的邮件              SearchTerm st = new AndTerm(                      new FromStringTerm("test_hao@sina.cn"),                      new SubjectTerm("测试1"));                    //      // 获得邮件夹Folder内的所有邮件Message对象      //      Message [] messages = folder.getMessages();                            // 不是像上面那样直接返回所有邮件,而是使用Folder.search()方法              Message [] messages = folder.search(st);              int mailCounts = messages.length;              System.out.println("搜索过滤到" + mailCounts + " 封符合条件的邮件!");                            for(int i = 0; i < mailCounts; i++) {                                    String subject = messages[i].getSubject();                  String from = (messages[i].getFrom()[0]).toString();                                    System.out.println("第 " + (i+1) + "封邮件的主题:" + subject);                  System.out.println("第 " + (i+1) + "封邮件的发件人地址:" + from);                                    System.out.println("是否删除该邮件(yes/no)?:");                  BufferedReader br = new BufferedReader(new InputStreamReader(System.in));                  String input = br.readLine();                  if("yes".equalsIgnoreCase(input)) {                      // 直接输出到控制台中      //              messages[i].writeTo(System.out);                      // 设置删除标记,一定要记得调用saveChanges()方法                      messages[i].setFlag(Flags.Flag.DELETED, true);                      messages[i].saveChanges();                      System.out.println("成功设置了删除标记!");                  }                         }              // 关闭连接时设置了删除标记的邮件才会被真正删除,相当于"QUIT"命令              folder.close(false);              store.close();          }      }