Archive for 2010/1/14

前回、メールの送受信するAIRのライブラリ公開(airxmail)をお知らせしたが、
今回は、オーソドックスなメールの送信方法を紹介します。

その前に、必要なライブラリをサイトからダウンロードしてください。
ダウンロードタブから、coltware_airxmail_r15.swcをダウンロードしてください。

airxmailのサイト

このサンプルで必要なクラス

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が使えるようなので、時間があるときにでも確認してみます。

RSS
Add to Google

カスタム検索
ソフトウェア&ライブラリ


ライブラリ
airxmail(en)
AIR版メール送受信ライブラリ
airxzip
AIR版ZIP圧縮・解凍ライブラリ
カレンダー
2010年1月
« 12月   2月 »
 123
45678910
11121314151617
18192021222324
25262728293031
アーカイブ
にほんブログ村 IT技術ブログへ