クラスパスの設定

広告

JavaMailのプログラムをコンパイルする際には次の2つのファイルに対してクラスパスを設定する必要があります。

(JavaMailインストールディレクトリ)¥javamail-1.4¥mail.jar
(JAFインストールディレクトリ)¥jaf-1.1¥activation.jar

環境変数で設定するかclasspathオプションを使用するかどちらかで設定して下さい。環境変数で設定する場合には次のようにします。

set CLASSPATH=%CLASSPATH%;d:¥java¥javamail-1.4¥mail.jar;.
set CLASSPATH=%CLASSPATH%;d:¥java¥jaf-1.1¥activation.jar

※ディレクトリはご自身の環境に合わせて変更して下さい。

classpathオプションを使用する場合は次のようにします。

javac -classpath d:¥java¥javamail-1.4¥mail.jar;d:¥java¥jaf-1.1¥activation.jar xxxxx.java
java -classpath .;d:¥java¥javamail-1.4¥mail.jar;d:¥java¥jaf-1.1¥activation.jar xxxxx

サンプルプログラムのテスト

では簡単なサンプルプログラムを使って簡単なテストを行ってみます。次のプログラムはJavaMailのデモとして用意されているサンプルプログラムを一部簡略化したものです。

msgsendsample.java

import java.util.*;
import java.io.*;
import javax.mail.*;
import javax.mail.internet.*;
import javax.activation.*;

public class msgsendsample {
  static String msgText = "This is a message body";

  public static void main(String[] args) {
    if (args.length != 4) {
      usage();
      System.exit(1);
    }

    System.out.println();

    String to = args[0];
    String from = args[1];
    String host = args[2];
    boolean debug = Boolean.valueOf(args[3]).booleanValue();

    // create some properties and get the default Session
    Properties props = new Properties();
    props.put("mail.smtp.host", host);
    if (debug) props.put("mail.debug", args[3]);

    Session session = Session.getInstance(props, null);
    session.setDebug(debug);

    try {
      // create a message
      Message msg = new MimeMessage(session);
      msg.setFrom(new InternetAddress(from));
      InternetAddress[] address = {new InternetAddress(args[0])};
      msg.setRecipients(Message.RecipientType.TO, address);
      msg.setSubject("JavaMail APIs Test");
       msg.setSentDate(new Date());
      // If the desired charset is known, you can use
      // setText(text, charset)
      msg.setText(msgText);

      Transport.send(msg);
    } catch (MessagingException mex) {
      System.out.println("¥n--Exception handling in msgsendsample.java");

      mex.printStackTrace();
    }
  }

  private static void usage() {
    System.out.println("usage: java msgsendsample <to> <from> <smtp> true|false");
  }
}

それではコンパイルを行ってみます。

JavaMailのサンプルプルグラム

コンパイルが成功したら実際に実行を行ってみます。

JavaMailのサンプルプルグラム

引数として4つ指定します。1番目にはメールの送信先メールアドレス、2番目にはメールの送信元メールアドレス、3番目にはSMTPサーバ、4番目はデバック情報の有無をtrue又はfalseで指定します。実際に試して見てください。

( Written by Tatsuo Ikura )