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

Java编程

开发平台:

Java

  1. /*
  2.  * @(#)msgsendsample.java 1.19 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. import java.util.*;
  39. import java.io.*;
  40. import javax.mail.*;
  41. import javax.mail.internet.*;
  42. import javax.activation.*;
  43. /**
  44.  * msgsendsample creates a very simple text/plain message and sends it.
  45.  * <p>
  46.  * usage: <code>java msgsendsample <i>to from smtphost true|false</i></code>
  47.  * where <i>to</i> and <i>from</i> are the destination and
  48.  * origin email addresses, respectively, and <i>smtphost</i>
  49.  * is the hostname of the machine that has the smtp server
  50.  * running. The last parameter either turns on or turns off
  51.  * debugging during sending.
  52.  *
  53.  * @author Max Spivak
  54.  */
  55. public class msgsendsample {
  56.     static String msgText = "This is a message body.nHere's the second line.";
  57.     public static void main(String[] args) {
  58. if (args.length != 4) {
  59.     usage();
  60.     System.exit(1);
  61. }
  62. System.out.println();
  63. String to = args[0];
  64. String from = args[1];
  65. String host = args[2];
  66. boolean debug = Boolean.valueOf(args[3]).booleanValue();
  67. // create some properties and get the default Session
  68. Properties props = new Properties();
  69. props.put("mail.smtp.host", host);
  70. if (debug) props.put("mail.debug", args[3]);
  71. Session session = Session.getInstance(props, null);
  72. session.setDebug(debug);
  73. try {
  74.     // create a message
  75.     Message msg = new MimeMessage(session);
  76.     msg.setFrom(new InternetAddress(from));
  77.     InternetAddress[] address = {new InternetAddress(args[0])};
  78.     msg.setRecipients(Message.RecipientType.TO, address);
  79.     msg.setSubject("JavaMail APIs Test");
  80.     msg.setSentDate(new Date());
  81.     // If the desired charset is known, you can use
  82.     // setText(text, charset)
  83.     msg.setText(msgText);
  84.     
  85.     Transport.send(msg);
  86. } catch (MessagingException mex) {
  87.     System.out.println("n--Exception handling in msgsendsample.java");
  88.     mex.printStackTrace();
  89.     System.out.println();
  90.     Exception ex = mex;
  91.     do {
  92. if (ex instanceof SendFailedException) {
  93.     SendFailedException sfex = (SendFailedException)ex;
  94.     Address[] invalid = sfex.getInvalidAddresses();
  95.     if (invalid != null) {
  96. System.out.println("    ** Invalid Addresses");
  97. if (invalid != null) {
  98.     for (int i = 0; i < invalid.length; i++) 
  99. System.out.println("         " + invalid[i]);
  100. }
  101.     }
  102.     Address[] validUnsent = sfex.getValidUnsentAddresses();
  103.     if (validUnsent != null) {
  104. System.out.println("    ** ValidUnsent Addresses");
  105. if (validUnsent != null) {
  106.     for (int i = 0; i < validUnsent.length; i++) 
  107. System.out.println("         "+validUnsent[i]);
  108. }
  109.     }
  110.     Address[] validSent = sfex.getValidSentAddresses();
  111.     if (validSent != null) {
  112. System.out.println("    ** ValidSent Addresses");
  113. if (validSent != null) {
  114.     for (int i = 0; i < validSent.length; i++) 
  115. System.out.println("         "+validSent[i]);
  116. }
  117.     }
  118. }
  119. System.out.println();
  120. if (ex instanceof MessagingException)
  121.     ex = ((MessagingException)ex).getNextException();
  122. else
  123.     ex = null;
  124.     } while (ex != null);
  125. }
  126.     }
  127.     private static void usage() {
  128. System.out.println("usage: java msgsendsample <to> <from> <smtp> true|false");
  129.     }
  130. }