View Javadoc
1 package examples; 2 3 /* ==================================================================== 4 * The Apache Software License, Version 1.1 5 * 6 * Copyright (c) 2001 The Apache Software Foundation. All rights 7 * reserved. 8 * 9 * Redistribution and use in source and binary forms, with or without 10 * modification, are permitted provided that the following conditions 11 * are met: 12 * 13 * 1. Redistributions of source code must retain the above copyright 14 * notice, this list of conditions and the following disclaimer. 15 * 16 * 2. Redistributions in binary form must reproduce the above copyright 17 * notice, this list of conditions and the following disclaimer in 18 * the documentation and/or other materials provided with the 19 * distribution. 20 * 21 * 3. The end-user documentation included with the redistribution, 22 * if any, must include the following acknowledgment: 23 * "This product includes software developed by the 24 * Apache Software Foundation (http://www.apache.org/)." 25 * Alternately, this acknowledgment may appear in the software itself, 26 * if and wherever such third-party acknowledgments normally appear. 27 * 28 * 4. The names "Apache" and "Apache Software Foundation" and 29 * "Apache Commons" must not be used to endorse or promote products 30 * derived from this software without prior written permission. For 31 * written permission, please contact apache@apache.org. 32 * 33 * 5. Products derived from this software may not be called "Apache", 34 * nor may "Apache" appear in their name, without 35 * prior written permission of the Apache Software Foundation. 36 * 37 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED 38 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 39 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 40 * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR 41 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 42 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 43 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 44 * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 45 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 46 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT 47 * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 48 * SUCH DAMAGE. 49 * ==================================================================== 50 * 51 * This software consists of voluntary contributions made by many 52 * individuals on behalf of the Apache Software Foundation. For more 53 * information on the Apache Software Foundation, please see 54 * <http://www.apache.org/>;. 55 */ 56 57 import java.io.BufferedReader; 58 import java.io.FileNotFoundException; 59 import java.io.FileReader; 60 import java.io.IOException; 61 import java.io.InputStreamReader; 62 import java.io.PrintWriter; 63 import java.io.Writer; 64 import java.util.Enumeration; 65 import java.util.Vector; 66 import org.apache.commons.net.io.Util; 67 import org.apache.commons.net.smtp.SMTPClient; 68 import org.apache.commons.net.smtp.SMTPReply; 69 import org.apache.commons.net.smtp.SimpleSMTPHeader; 70 71 /**** 72 * This is an example program using the SMTP package to send a message 73 * to the specified recipients. It prompts you for header information and 74 * a filename containing the message. 75 * <p> 76 ***/ 77 78 public final class mail 79 { 80 81 public final static void main(String[] args) 82 { 83 String sender, recipient, subject, filename, server, cc; 84 Vector ccList = new Vector(); 85 BufferedReader stdin; 86 FileReader fileReader = null; 87 Writer writer; 88 SimpleSMTPHeader header; 89 SMTPClient client; 90 Enumeration enum; 91 92 if (args.length < 1) 93 { 94 System.err.println("Usage: mail smtpserver"); 95 System.exit(1); 96 } 97 98 server = args[0]; 99 100 stdin = new BufferedReader(new InputStreamReader(System.in)); 101 102 try 103 { 104 System.out.print("From: "); 105 System.out.flush(); 106 107 sender = stdin.readLine(); 108 109 System.out.print("To: "); 110 System.out.flush(); 111 112 recipient = stdin.readLine(); 113 114 System.out.print("Subject: "); 115 System.out.flush(); 116 117 subject = stdin.readLine(); 118 119 header = new SimpleSMTPHeader(sender, recipient, subject); 120 121 122 while (true) 123 { 124 System.out.print("CC <enter one address per line, hit enter to end>: "); 125 System.out.flush(); 126 127 // Of course you don't want to do this because readLine() may be null 128 cc = stdin.readLine().trim(); 129 130 if (cc.length() == 0) 131 break; 132 133 header.addCC(cc); 134 ccList.addElement(cc); 135 } 136 137 System.out.print("Filename: "); 138 System.out.flush(); 139 140 filename = stdin.readLine(); 141 142 try 143 { 144 fileReader = new FileReader(filename); 145 } 146 catch (FileNotFoundException e) 147 { 148 System.err.println("File not found. " + e.getMessage()); 149 } 150 151 client = new SMTPClient(); 152 client.addProtocolCommandListener(new PrintCommandListener( 153 new PrintWriter(System.out))); 154 155 client.connect(server); 156 157 if (!SMTPReply.isPositiveCompletion(client.getReplyCode())) 158 { 159 client.disconnect(); 160 System.err.println("SMTP server refused connection."); 161 System.exit(1); 162 } 163 164 client.login(); 165 166 client.setSender(sender); 167 client.addRecipient(recipient); 168 169 enum = ccList.elements(); 170 171 while (enum.hasMoreElements()) 172 client.addRecipient((String)enum.nextElement()); 173 174 writer = client.sendMessageData(); 175 176 if (writer != null) 177 { 178 writer.write(header.toString()); 179 Util.copyReader(fileReader, writer); 180 writer.close(); 181 client.completePendingCommand(); 182 } 183 184 fileReader.close(); 185 186 client.logout(); 187 188 client.disconnect(); 189 } 190 catch (IOException e) 191 { 192 e.printStackTrace(); 193 System.exit(1); 194 } 195 } 196 } 197 198

This page was automatically generated by Maven