Archive for 2010/1/14
前回、メールの送受信するAIRのライブラリ公開(airxmail)をお知らせしたが、
今回は、オーソドックスなメールの送信方法を紹介します。
その前に、必要なライブラリをサイトからダウンロードしてください。
ダウンロードタブから、coltware_airxmail_r15.swcをダウンロードしてください。
このサンプルで必要なクラス
import com.coltware.airxmail.MailSender.SMTPSender; import com.coltware.airxmail.MimeMessage; import com.coltware.airxmail.INetAddress; import com.coltware.airxmail.RecipientType;
SMTPSenderクラスは、SMTPのプロトコルを使ってメールを送信するためのクラスです。
実際のSMTPのプロトコルベースでメールを送信しなくてもいいようにしてあります。
SMTPのプロトコルを意識してプログラムする場合には、SMTPClientというクラスを使う必要があります。
さて、このクラスの大まかな流れですが・・・
var sender:SMTPSender = new SMTPSender(); // ここで必要な環境設定を行う sender.setParameter([KEY],[VALUE]); var msg:MimeMessage = new MimeMessage(); // メッセージオブジェクトの作成 sender.send(msg); sender.close();
のような感じでメールが送れるようにしております。
非常に簡単な感じになっていると思います。
では、setParameterで指定する値ですが、基本的には
- サーバ名:SMTPSender.HOST(文字列型)
だけでもいいのですが、認証(SMTP AUTH)を使っている場合や、gmailなど25番ポート以外場合を使う場合が考えられます。
この場合には、以下のパラメータも指定してください。
- ポート番号:SMTPSender.PORT(数値型)
- 認証を使う指定:SMTPSender.AUTH(Boolean型)
- ユーザ名:SMTPSender.USERNAME(文字列型)
- パスワード:SMTPSender.PASSWORD(文字列型)
- SSL/TLSを使う指定:SMTPSender.SSL(Boolean型)
ただし、SSL/TLSを使う場合には、内部で作成されるオブジェクトが自動的にas3cryptoのオブジェクトが使われますので、
依存するこのライブラリを自前で用意してください。
また、認証はサーバから要求された場合のみ認証するようにしております、もし、うまく認証が動いていないようであれば、
このあたりの処理を疑うといいかもしれません。
では、次にメール本文を作成する処理ですが、
var mimeMsg:MimeMessage = new MimeMessage();
var from:INetAddress = new INetAddress();
from.personal = "送信者";
from.address = this.fromEmail;
mimeMsg.setFrom(from);
var toAddr:INetAddress = new INetAddress(this.toEmail,"受信者");
mimeMsg.addRcpt(RecipientType.TO,toAddr);
// サブジェクトを指定する
mimeMsg.setSubject("初めてのメール");
mimeMsg.setTextBody("これは本文です。\r\n2行目です");
sender.send(mimeMsg);
sender.close();
のようにすればOKです。
ここでは、単純なtextメールのサンプルですが、添付ファイル付のメールなども送れます。
もうちょっと、応用した使い方は今後紹介していきます。
今まで、AIRを使ってSMTPとPOP3でメールを送受信するライブラリを作ってきたので、
それをgoogle codeに公開して開発するようにしました。
google code自体もなれていないので、これでいいのかすらまだよくわかっていませんが・・・・
こちらでーす。
http://airxmail.googlecode.com
まだまだ、ドキュメントなどがそろってはいませんが、こちらのブログでも随時紹介していきたいと思います。
SMTPやPOP3のプロトコルを詳しく知らなくても、メールの送受信ができるようにしました。
実装するにあたりJava Mailをある程度は参考にしましたが、めんどくさくなってしまった部分もあります。
というより、リリースがだいぶ遅くなりましたが、これが初めてのAS3プログラミングだったために、
命名規則やら、実装方法やら、だいぶ自分の中でもぶれてしまい、これをあわせるのが面倒になってしまった。
ただ、MIME形式を意識してプログラミングするよりかは、はるかに楽になっていると思います。
IMAPは将来的には実装するつもりはありますが、当分予定はありません。
自分の環境では、niftyとgmail、ローカルではSMTPはpostfix(AUTHなし)、pop3はdovecodを使って確認しています。
ただし、gmailなど、TLSを使って通信する必要がある場合には、別途、as3cryptoのライブラリが必要になります。
このあたり、AIRv2ならばSocketでTLSが使えるようなので、時間があるときにでも確認してみます。

