KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > jcorporate > expresso > core > utility > MailFiles


1 /* ====================================================================
2  * The Jcorporate Apache Style Software License, Version 1.2 05-07-2002
3  *
4  * Copyright (c) 1995-2002 Jcorporate Ltd. 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  * 1. Redistributions of source code must retain the above copyright
11  * notice, this list of conditions and the following disclaimer.
12  *
13  * 2. Redistributions in binary form must reproduce the above copyright
14  * notice, this list of conditions and the following disclaimer in
15  * the documentation and/or other materials provided with the
16  * distribution.
17  *
18  * 3. The end-user documentation included with the redistribution,
19  * if any, must include the following acknowledgment:
20  * "This product includes software developed by Jcorporate Ltd.
21  * (http://www.jcorporate.com/)."
22  * Alternately, this acknowledgment may appear in the software itself,
23  * if and wherever such third-party acknowledgments normally appear.
24  *
25  * 4. "Jcorporate" and product names such as "Expresso" must
26  * not be used to endorse or promote products derived from this
27  * software without prior written permission. For written permission,
28  * please contact info@jcorporate.com.
29  *
30  * 5. Products derived from this software may not be called "Expresso",
31  * or other Jcorporate product names; nor may "Expresso" or other
32  * Jcorporate product names appear in their name, without prior
33  * written permission of Jcorporate Ltd.
34  *
35  * 6. No product derived from this software may compete in the same
36  * market space, i.e. framework, without prior written permission
37  * of Jcorporate Ltd. For written permission, please contact
38  * partners@jcorporate.com.
39  *
40  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
41  * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
42  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
43  * DISCLAIMED. IN NO EVENT SHALL JCORPORATE LTD OR ITS CONTRIBUTORS
44  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
45  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
46  * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
47  * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
48  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
49  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
50  * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
51  * SUCH DAMAGE.
52  * ====================================================================
53  *
54  * This software consists of voluntary contributions made by many
55  * individuals on behalf of the Jcorporate Ltd. Contributions back
56  * to the project(s) are encouraged when you make modifications.
57  * Please send them to support@jcorporate.com. For more information
58  * on Jcorporate Ltd. and its products, please see
59  * <http://www.jcorporate.com/>.
60  *
61  * Portions of this software are based upon other open source
62  * products and are subject to their respective licenses.
63  */

64
65 package com.jcorporate.expresso.core.utility;
66
67 import com.jcorporate.expresso.core.job.ServerException;
68 import com.jcorporate.expresso.core.misc.EMailSender;
69
70 import java.io.File JavaDoc;
71 import java.util.Vector JavaDoc;
72
73
74 /**
75  * @author Michael Nash
76  */

77 public class MailFiles {
78
79     /**
80      * Constructor
81      */

82     public MailFiles() {
83         super();
84     } /* MailFiles() */
85
86     /**
87      * Constructor
88      *
89      * @param args[] Command-line arguments
90      */

91     public MailFiles(String JavaDoc[] args) {
92         String JavaDoc myName = (getClass().getName() +
93                 ".MailFiles(String[])");
94
95         try {
96             if ((args.length != 6) && (args.length != 8)) {
97                 System.out.println("Usage: MailFiles mailserver mailFrom " +
98                         "email-address " +
99                         "'subject' 'Message' directory-or-file " +
100                         "[SMTP-auth-user SMTP-auth-password]");
101                 System.exit(1);
102             }
103
104             String JavaDoc mailServer = args[0];
105             String JavaDoc mailFrom = args[1];
106             String JavaDoc sendToUser = args[2];
107             String JavaDoc subject = args[3];
108             String JavaDoc message = args[4];
109             String JavaDoc dirOrFile = args[5];
110             String JavaDoc SMTPUser = null;
111             String JavaDoc SMTPPassword = null;
112
113             if (args.length == 8) {
114                 SMTPUser = args[6];
115                 SMTPPassword = args[7];
116             }
117
118             System.out.println("Sending files '" + dirOrFile + "' to user " +
119                     sendToUser + " with message '" + message + "'");
120
121             try {
122                 Vector JavaDoc fileNameList = new Vector JavaDoc(4);
123                 File JavaDoc myFile = new File JavaDoc(dirOrFile);
124
125                 if (myFile.isDirectory()) {
126                     String JavaDoc[] OriginalQueue = myFile.list();
127
128                     if (OriginalQueue == null) {
129                         throw new ServerException(myName + ":Null array " +
130                                 "reading directory of " +
131                                 dirOrFile);
132                     }
133
134                     int OriginalQueueCount = OriginalQueue.length;
135
136                     for (int i = 0; i < OriginalQueueCount; i++) {
137                         String JavaDoc ls_OneLine = OriginalQueue[i].trim();
138                         System.out.println("Scanning file " + ls_OneLine);
139                         fileNameList.addElement(ls_OneLine);
140                     }
141                 } else { /* if it's a directory */
142                     fileNameList.addElement(dirOrFile);
143                 }
144
145                 EMailSender ems = new EMailSender();
146                 ems.setToAddress(sendToUser);
147                 ems.setFromAddress(mailFrom);
148                 ems.setSMTPHost(mailServer);
149                 ems.setSubject(subject);
150                 ems.setText(message);
151                 ems.addFileAttachments(fileNameList);
152
153                 if (SMTPUser != null) {
154                     ems.setSMTPUser(SMTPUser);
155                     ems.setSMTPPassword(SMTPPassword);
156                 }
157
158                 ems.send();
159             } catch (Exception JavaDoc e) {
160                 e.printStackTrace();
161                 throw new ServerException(myName + ":Uncaught exception " +
162                         "sending e-mail:" + e.getMessage());
163             }
164         } catch (ServerException ae) {
165             System.out.println(ae.getMessage());
166         } /* catch */
167
168
169         System.out.println("Message sent");
170     } /* MailFiles(String) */
171
172     /**
173      * Main method
174      * Parameters are:
175      * <ol><li>mailServer: SMTP Server name for sending e-mails</li>
176      * <li>mailFrom: Value to use as the "from" field in e-mails</li>
177      * <li>sendToUser: E-mail address to send message to</li>
178      * <li>subject: Subject of message</li>
179      * <li>message: Text of message. Quote if contains spaces
180      * <li>dirOrFile: Directory of files or single file name. Entire contents
181      * of directory will be sent if a directory name is supplied.</li>
182      * </ol>
183      *
184      * @param args[] Command line arguments
185      */

186     public static void main(String JavaDoc[] args) {
187         new MailFiles(args);
188     } /* main(String) */
189
190 } /* MailFiles */
191
192 /* MailFiles */
Popular Tags