sendfile.java
资源名称:某公司的java培训教材 [点击查看]
上传用户:dinglihq
上传日期:2013-02-04
资源大小:99958k
文件大小:4k
源码类别:
Java编程
开发平台:
Java
- /*
- * @(#)sendfile.java 1.11 03/06/19
- *
- * Copyright 1996-2003 Sun Microsystems, Inc. All Rights Reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * - Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * - Redistribution in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * Neither the name of Sun Microsystems, Inc. or the names of contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * This software is provided "AS IS," without a warranty of any kind. ALL
- * EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES,
- * INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A
- * PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE HEREBY EXCLUDED. SUN AND
- * ITS LICENSORS SHALL NOT BE LIABLE FOR ANY DAMAGES OR LIABILITIES
- * SUFFERED BY LICENSEE AS A RESULT OF OR RELATING TO USE, MODIFICATION
- * OR DISTRIBUTION OF THE SOFTWARE OR ITS DERIVATIVES. IN NO EVENT WILL
- * SUN OR ITS LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT OR DATA, OR
- * FOR DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR PUNITIVE
- * DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY,
- * ARISING OUT OF THE USE OF OR INABILITY TO USE SOFTWARE, EVEN IF SUN HAS
- * BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
- *
- * You acknowledge that Software is not designed, licensed or intended
- * for use in the design, construction, operation or maintenance of any
- * nuclear facility.
- */
- import java.util.*;
- import java.io.*;
- import javax.mail.*;
- import javax.mail.internet.*;
- import javax.activation.*;
- /**
- * sendfile will create a multipart message with the second
- * block of the message being the given file.<p>
- *
- * This demonstrates how to use the FileDataSource to send
- * a file via mail.<p>
- *
- * usage: <code>java sendfile <i>to from smtp file true|false</i></code>
- * where <i>to</i> and <i>from</i> are the destination and
- * origin email addresses, respectively, and <i>smtp</i>
- * is the hostname of the machine that has smtp server
- * running. <i>file</i> is the file to send. The next parameter
- * either turns on or turns off debugging during sending.
- *
- * @author Christopher Cotton
- */
- public class sendfile {
- public static void main(String[] args) {
- if (args.length != 5) {
- System.out.println("usage: java sendfile <to> <from> <smtp> <file> true|false");
- System.exit(1);
- }
- String to = args[0];
- String from = args[1];
- String host = args[2];
- String filename = args[3];
- boolean debug = Boolean.valueOf(args[4]).booleanValue();
- String msgText1 = "Sending a file.n";
- String subject = "Sending a file";
- // create some properties and get the default Session
- Properties props = System.getProperties();
- props.put("mail.smtp.host", host);
- Session session = Session.getInstance(props, null);
- session.setDebug(debug);
- try {
- // create a message
- MimeMessage msg = new MimeMessage(session);
- msg.setFrom(new InternetAddress(from));
- InternetAddress[] address = {new InternetAddress(to)};
- msg.setRecipients(Message.RecipientType.TO, address);
- msg.setSubject(subject);
- // create and fill the first message part
- MimeBodyPart mbp1 = new MimeBodyPart();
- mbp1.setText(msgText1);
- // create the second message part
- MimeBodyPart mbp2 = new MimeBodyPart();
- // attach the file to the message
- FileDataSource fds = new FileDataSource(filename);
- mbp2.setDataHandler(new DataHandler(fds));
- mbp2.setFileName(fds.getName());
- // create the Multipart and add its parts to it
- Multipart mp = new MimeMultipart();
- mp.addBodyPart(mbp1);
- mp.addBodyPart(mbp2);
- // add the Multipart to the message
- msg.setContent(mp);
- // set the Date: header
- msg.setSentDate(new Date());
- // send the message
- Transport.send(msg);
- } catch (MessagingException mex) {
- mex.printStackTrace();
- Exception ex = null;
- if ((ex = mex.getNextException()) != null) {
- ex.printStackTrace();
- }
- }
- }
- }