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>
こんにちは。
ライブラリ、利用させていただきました。
ActionScriptでソケット通信できるなんて、凄いですね…。
しかも、ちゃんと日本語がISO-2022-JPだったので、感激でした!
ところで、差し支えなければ質問なんですが、SMTPサーバとSWFのあるサーバは、同一でないと上手く動かないのでしょうか?
開発PCのFlex Builderからは上手く行くのですが、サーバにアップすると上手く動きませんでした。(WEBサーバとSMTPサーバは別サーバ・別ドメインになります)
crossdomainの制限があるとは思っているのですが、Socketプログラム自身は、バイナリの中に閉じてしまっているので、どの部分で許可すれば良いのか良くわかりませんでした..。
スイマセン、僕もちゃんと使ったことないので正直よく分からないんですが、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