| /* |
| * Copyright (c) 1996, 2018 Oracle and/or its affiliates. All rights reserved. |
| * |
| * This program and the accompanying materials are made available under the |
| * terms of the Eclipse Distribution License v. 1.0, which is available at |
| * http://www.eclipse.org/org/documents/edl-v10.php. |
| * |
| * SPDX-License-Identifier: BSD-3-Clause |
| */ |
| |
| /** |
| * |
| * @author Christopher Cotton |
| */ |
| |
| import javax.mail.*; |
| |
| /** |
| * copier will copy a specified number of messages from one folder |
| * to another folder. it demonstrates how to use the JavaMail APIs |
| * to copy messages.<p> |
| * |
| * Usage for copier: copier <i>store urlname</i> |
| * <i>src folder</i> <i>dest folder</i> <i>start msg #</i> <i>end msg #</i><p> |
| * |
| */ |
| |
| public class copier { |
| |
| public static void main(String argv[]) { |
| boolean debug = false; // change to get more errors |
| |
| if (argv.length != 5) { |
| System.out.println( "usage: copier <urlname> <src folder>" + |
| "<dest folder> <start msg #> <end msg #>"); |
| return; |
| } |
| |
| try { |
| URLName url = new URLName(argv[0]); |
| String src = argv[1]; // source folder |
| String dest = argv[2]; // dest folder |
| int start = Integer.parseInt(argv[3]); // copy from message # |
| int end = Integer.parseInt(argv[4]); // to message # |
| |
| // Get the default Session object |
| |
| Session session = Session.getInstance(System.getProperties(), null); |
| // session.setDebug(debug); |
| |
| // Get a Store object that implements the protocol. |
| Store store = session.getStore(url); |
| store.connect(); |
| System.out.println("Connected..."); |
| |
| // Open Source Folder |
| Folder folder = store.getFolder(src); |
| folder.open(Folder.READ_WRITE); |
| System.out.println("Opened source..."); |
| |
| if (folder.getMessageCount() == 0) { |
| System.out.println("Source folder has no messages .."); |
| folder.close(false); |
| store.close(); |
| } |
| |
| // Open destination folder, create if needed |
| Folder dfolder = store.getFolder(dest); |
| if (!dfolder.exists()) // create |
| dfolder.create(Folder.HOLDS_MESSAGES); |
| |
| Message[] msgs = folder.getMessages(start, end); |
| System.out.println("Got messages..."); |
| |
| // Copy messages into destination, |
| folder.copyMessages(msgs, dfolder); |
| System.out.println("Copied messages..."); |
| |
| // Close the folder and store |
| folder.close(false); |
| store.close(); |
| System.out.println("Closed folder and store..."); |
| |
| } catch (Exception e) { |
| e.printStackTrace(); |
| } |
| |
| System.exit(0); |
| } |
| } |