// text/enrichedメッセージの送信を行うサンプルプログラム
import java.io.*;
import javax.mail.MessagingException;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMultipart;
import javax.mail.internet.MimeMessage;
import javax.activation.DataHandler;
import com.sk_jp.mail.SimpleSender;

public class SendEnrichedSample {
    public static void main(String[] args) throws Exception {
        String host = args[0];
        String to   = args[1];
        String from = args[2];
        String subject = "テストメッセージです";

        SimpleSender sender = new SimpleSender();

        MimeMessage msg = sender.createMessage();
        SimpleSender.setHeaders(msg, to, from);
        msg.setSubject(subject, "ISO-2022-JP");

        msg.setContent(createEnrichedPart());
        msg.saveChanges();

        sender.connect(host);
        sender.send(msg);
        sender.disconnect();
    }

    public static MimeMultipart createEnrichedPart()
                throws MessagingException {
        String text = "これはテキストのパートです。";
        String enriched =
                "これは<BOLD>text/enriched</BOLD>の<UNDERLINE>パート</UNDERLINE>です。";

        // 一つ目のボディパート(text/plain)の構築
        MimeBodyPart textPart = new MimeBodyPart();
        textPart.setText(text, "ISO-2022-JP");

        // 二つ目のボディパート(text/enriched)の構築
        MimeBodyPart enrichedPart = new MimeBodyPart();
        // Bad
//      enrichedPart.setContent(enriched, "text/enriched; charset=ISO-2022-JP");
        // OK
        enrichedPart.setDataHandler(new DataHandler(
                new com.sk_jp.mail.ByteArrayDataSource(
                    enriched, "text/enriched; charset=ISO-2022-JP")));
        enrichedPart.setHeader("Content-Transfer-Encoding", "7bit");

        MimeMultipart mp = new MimeMultipart("alternative");
        mp.addBodyPart(textPart);
        mp.addBodyPart(enrichedPart);

        return mp;
    }
}

