Archive for 2010/1/21
今回は、前回で簡単なテキストメールを送るところまで説明しましたが、
マルチパート(HTML)メールを送ります。
単純なテキストメールを送るだけなら、それほどライブラリなど使わずに単純にがりがりと書いてしまった方が楽ではありますが、
マルチパートとなると、Boundaryなどが出てきてそれなりに面倒ですので、やっと、ライブラリを使った方がいいかなという感じが出てきます。
ただし、前回からライブラリが新しくなったので、こちらからもっとも新しいバージョンをダウンロードしてください。
さて、マルチパートの作成ですが、
var contentType:ContentType = ContentType.MULTIPART_ALTERNATIVE;
var mimeMsg:MimeMessage = new MimeMessage(contentType);
var from:INetAddress = new INetAddress();
from.personal = "Sample User";
from.address = this.fromEmail;
mimeMsg.setFrom(from);
var toAddr:INetAddress = new INetAddress(this.toEmail,"Customer");
mimeMsg.addRcpt(RecipientType.TO,toAddr);
// set mail subject
mimeMsg.setSubject("これは日本語メールです");
mimeMsg.setTextBody("this is multipart message");
// TextPart
var partText:MimeTextPart = mimeMsg.createTextPart();
partText.setText("これは通常の本文");
// HtmlPart
var partHtml:MimeTextPart = mimeMsg.createTextPart();
partHtml.setHtmlText("<html><body><b>ここにはHTMLの本文</b></body></html>");
sender.send(mimeMsg);
sender.close();
とこんな感じです。
ここで前回とちがって注意すべきところが3点ほどあります。
マルチパートであることを伝える
var contentType:ContentType = ContentType.MULTIPART_ALTERNATIVE; var mimeMsg:MimeMessage = new MimeMessage(contentType);
前回までは、コンストラクタに引数がなかったのですが、引数がない場合には、text/plainに自動的になってしまいます。
従って、ここでは、multipart/alternativeのパートを作成します。
子供のパートを作成する
var partText:MimeTextPart = mimeMsg.createTextPart();
これで、子供のパート(text/xxxxx)として追加します。
テキストもしくはHTMLを本文に設定する。
MimeTextPartには、
- setText
- setHtmlText
の2つの本文設定メソッドがあります。
つまり、setTextを使ったときには、text/plain
setHtmlTextを使ったときには text/html となるわけです。
次回は、添付ファイルをつけたメールの送信を説明したいと思います。

