2007年03月30日

Flash | ozacc-mail library for AS3 1.0-alpha

ozacc-mail library for AS3 1.0-alpha

結局テキストメールの送信のみをサポートしてリリース。ソースはまた後日。とりあえずswcファイルだけ。

ActionScriptのコード例

// SendMailオブジェクトの生成
var sendMail:SendMailImpl = new SendMailImpl("SMTPサーバ名");
sendMail.connectionTimeout = 5000;

// イベントリスナーの登録
sendMail.addEventListener(MailEvent.MAIL_SENT, function(e:MailEvent):void {
  Alert.show("メールを送信しました。");
  trace(e.mail); // 送信したメールを取得
});
sendMail.addEventListener(MailEvent.MAIL_ERROR, function(e:MailEvent):void {
  Alert.show("何かエラー");
  trace(e.mail); // 送信できなかったメールを取得
});
sendMail.addEventListener(NetEvent.CONNECTION_TIMEOUT, function(e:NetEvent):void {
  Alert.show("接続タイムアウト");
}

// 送信するメールの作成
var mail:Mail = new Mail();
mail.addTo(new InternetAddress("amechang@example.com", "あめちゃん"));
mail.setFrom(new InternetAddress("aiai@example.com", "アイアイ"));
mail.setSubject("メールの件名");
mail.setText("メールの本文");

// メールの送信
sendMail.send(mail);

MXMLタグでSendMailを定義する場合のコード例

<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" xmlns:oml="http://www.ozacc.com/library/oml" layout="absolute">
  <mx:Script>
    <![CDATA[
    private function send():void {
      var mail:Mail = new Mail();
      // 送信するメールの生成 (省略)

      sendMail.send(mail);
    }

    private function onMailSent(event:MailEvent):void {
      Alert.show("メールを送信しました。");
      trace(e.mail); // 送信したメールを取得
    }

    private function onMailError(event:MailEvent):void {
      Alert.show("何かエラー。");
      trace(e.mail); // 送信できなかったメールを取得
    }
    ]]>
  </mx:Script>

  <oml:SendMail id="sendMail" host="SMTPサーバ名" mailSent="onMailSent" mailError="onMailError" />

  <mx:Button label="送信" click="send()" />
</mx:Application>
Posted by otsuka : 03:09 | Comment (2) | Trackback (0)
Comment

こんにちは。
ライブラリ、利用させていただきました。
ActionScriptでソケット通信できるなんて、凄いですね…。

しかも、ちゃんと日本語がISO-2022-JPだったので、感激でした!

ところで、差し支えなければ質問なんですが、SMTPサーバとSWFのあるサーバは、同一でないと上手く動かないのでしょうか?
開発PCのFlex Builderからは上手く行くのですが、サーバにアップすると上手く動きませんでした。(WEBサーバとSMTPサーバは別サーバ・別ドメインになります)

crossdomainの制限があるとは思っているのですが、Socketプログラム自身は、バイナリの中に閉じてしまっているので、どの部分で許可すれば良いのか良くわかりませんでした..。

Posted by: suama : 2007年05月11日 12:20

スイマセン、僕もちゃんと使ったことないので正直よく分からないんですが、SMTPサーバが別ホストだったら少なくともcrossdomain.xmlは必要ですね。

で、ソケット使っているので、to-ports属性に"25"を指定すればよさそうです。が、SMTPサーバと同じホストでWebサーバが動いてないとダメなのかな? うーん。。。
http://livedocs.adobe.com/flex/201_jp/html/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Book_Parts&file=05B_Security_176_10.html

Posted by: otsuka : 2007年05月11日 15:07









名前、アドレスを登録しますか?