// [JavaMailTransportSample.java]
import java.io.*;
import java.util.Date;
import java.util.Properties;

import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.InternetAddress;

/**
 * 5つのパラメタ(host, from, to, subject, contentFile)を指定して
 * ファイル内容を送信します。
 */
public class JavaMailTransportSample {
    public static void main(String[] args) throws Exception {
        StringWriter content = new StringWriter();
        PrintWriter out = new PrintWriter(content);

        // read on default encoding
        BufferedReader contentIn =
                new BufferedReader(new FileReader(args[4]));
        String line;
        while ((line = contentIn.readLine()) != null) {
            out.println(line);
        }
        contentIn.close();

        sendMessage(args[0], 25,
                    args[1], new String[] {args[2]},
                    args[3], content.toString());
    }

    public static void sendMessage(String host, int port,
                                   String from, String[] to,
                                   String subject, String content)
                throws IOException, MessagingException {
        Properties props = System.getProperties();
        props.put("mail.smtp.host", host);
        Session session = Session.getDefaultInstance(props, null);

        // Messageオブジェクトを構築します。
        MimeMessage msg = new MimeMessage(session);

        // 宛て先(To:)の設定
        for (int i = 0; i < to.length; i++) {
            msg.addRecipients(MimeMessage.RecipientType.TO,
                              InternetAddress.parse(to[i], false));
        }

        // From: Date: の設定
        msg.setFrom(InternetAddress.parse(from, false)[0]);
        msg.setSentDate(new Date());

        // Subject: 本文の設定
        msg.setSubject(subject, "ISO-2022-JP");
        msg.setText(content, "ISO-2022-JP");

        msg.writeTo(System.out);

        Transport.send(msg);

        System.out.println("Send complete");
    }
}

