copier.java
上传用户:dinglihq
上传日期:2013-02-04
资源大小:99958k
文件大小:4k
源码类别:

Java编程

开发平台:

Java

  1. /*
  2.  * @(#)copier.java 1.9 03/04/22
  3.  *
  4.  * Copyright 1996-2003 Sun Microsystems, Inc. All Rights Reserved.
  5.  *
  6.  * Redistribution and use in source and binary forms, with or without
  7.  * modification, are permitted provided that the following conditions
  8.  * are met:
  9.  * 
  10.  * - Redistributions of source code must retain the above copyright
  11.  *   notice, this list of conditions and the following disclaimer.
  12.  * 
  13.  * - Redistribution in binary form must reproduce the above copyright
  14.  *   notice, this list of conditions and the following disclaimer in the
  15.  *   documentation and/or other materials provided with the distribution.
  16.  * 
  17.  * Neither the name of Sun Microsystems, Inc. or the names of contributors
  18.  * may be used to endorse or promote products derived from this software
  19.  * without specific prior written permission.
  20.  * 
  21.  * This software is provided "AS IS," without a warranty of any kind. ALL
  22.  * EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES,
  23.  * INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A
  24.  * PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE HEREBY EXCLUDED. SUN AND
  25.  * ITS LICENSORS SHALL NOT BE LIABLE FOR ANY DAMAGES OR LIABILITIES
  26.  * SUFFERED BY LICENSEE AS A RESULT OF  OR RELATING TO USE, MODIFICATION
  27.  * OR DISTRIBUTION OF THE SOFTWARE OR ITS DERIVATIVES. IN NO EVENT WILL
  28.  * SUN OR ITS LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT OR DATA, OR
  29.  * FOR DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR PUNITIVE
  30.  * DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY,
  31.  * ARISING OUT OF THE USE OF OR INABILITY TO USE SOFTWARE, EVEN IF SUN HAS
  32.  * BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
  33.  * 
  34.  * You acknowledge that Software is not designed, licensed or intended
  35.  * for use in the design, construction, operation or maintenance of any
  36.  * nuclear facility.
  37.  */
  38. /**
  39.  *
  40.  * @version 1.9, 03/04/22
  41.  * @author Christopher Cotton
  42.  */
  43. import javax.mail.*;
  44. /**
  45.  * copier will copy a specified number of messages from one folder
  46.  * to another folder. it demonstrates how to use the JavaMail APIs
  47.  * to copy messages.<p>
  48.  *
  49.  * usage for copier: copier <i>protocol</i> <i>host</i> <i>user</i> 
  50.  * <i>password</i> <i>src folder</i> <i>dest folder</i> <i>start msg #</i> <i>end msg #</i><p>
  51.  *
  52.  */
  53. public class copier {
  54.   public static void main(String argv[]) {
  55.       boolean debug = false;// change to get more errors
  56.       
  57.       if (argv.length != 5) {
  58.   System.out.println( "usage: copier <urlname> <src folder>" +
  59.       "<dest folder> <start msg #> <end msg #>");
  60.   return;
  61.       }
  62.       try {
  63.   URLName url = new URLName(argv[0]);
  64.   String src = argv[1]; // source folder
  65.   String dest = argv[2]; // dest folder
  66.   int start = Integer.parseInt(argv[3]);  // copy from message #
  67.   int end = Integer.parseInt(argv[4]); // to message #
  68.   // Get the default Session object
  69.   Session session = Session.getInstance(System.getProperties(), null);
  70.   // session.setDebug(debug);
  71.   // Get a Store object that implements 
  72.   // the protocol.
  73.   Store store = session.getStore(url);
  74.   store.connect();
  75.   System.out.println("Connected...");
  76.   // Open Source Folder
  77.   Folder folder = store.getFolder(src);
  78.   folder.open(Folder.READ_WRITE);
  79.   System.out.println("Opened source...");   
  80.   if (folder.getMessageCount() == 0) {
  81. System.out.println("Source folder has no messages ..");
  82. folder.close(false);
  83. store.close();
  84.   }
  85.   // Open destination folder, create if needed 
  86.   Folder dfolder = store.getFolder(dest);
  87.   if (!dfolder.exists()) // create
  88.       dfolder.create(Folder.HOLDS_MESSAGES);
  89.   System.out.println("Opened dest...");   
  90.   Message[] msgs = folder.getMessages(start, end);
  91.   System.out.println("Got messages...");   
  92.   // Copy messages into destination, 
  93.   folder.copyMessages(msgs, dfolder);
  94.   System.out.println("Copied messages...");   
  95.   // Close the folders and store
  96.   folder.close(false);
  97.   dfolder.close(false);
  98.   store.close();
  99.   System.out.println("Closed folders and store...");
  100.   
  101.       } catch (Exception e) {
  102.   e.printStackTrace();
  103.       }
  104.       System.exit(0);
  105.   }
  106. }