2009年11月21日土曜日

GAEとDoCoMoのアドレス

GAEでメール受信を作りましたが、
初めに試してもらった人が「xxxxx.@docomo.ne.jp」てアドレスでした。

どうも@の前に「.」があるとダメみたいで
getFrom()をやると「local part invalid」ってエラーが出てました。

なのでヘッダーの情報を見て、

  1. Enumeration<?> enu = aMessage.getAllHeaderLines();  //データ数回繰り返す while ( enu.hasMoreElements() ) {  String line = (String)enu.nextElement();  if ( line.toLowerCase().indexOf("from") >= 0 ) {   //fromを検索して追加   fromAddress.add(line);  } else if ( line.toLowerCase().indexOf("to") >= 0 ) {   //toを検索して追加   toAddress.add(line);  } }   


って感じでFromやToを抜き出して、
そこからアドレスを抽出して処理してみました。

まぁシビアにはまずいかもしれませんが
一応これでメールアドレスを判定する事ができました。

2009年11月15日日曜日

TitleWindowをリサイズする

TitleWindowをリサイズ可能にしようと思い立ち


を元に作成したのだが、スクロールバーなどがあると
かなり挙動不審になりますね。。。

つうことで

onThis_mouseDown() 関数の初めに

  1. if ( event.target != this ) {     return;    }    

といれると結構安定します。

ちなみに私は
  1. private const SIZE_DRAGAREA:int = 10;   private const SIZE_MIN_WIDTH:int = 50;   private const SIZE_MIN_HEIGHT:int = 50;   

位で使います。

Blogger・・・トラックバックできない。。。
・・・なんかややこしいけどやり方はあるみたい。
やってみるかな。。。

2009年11月8日日曜日

GAEでメール受信

GAEにメール受信する機能が増えたんですね。
またまたやってくれます。。。。って思ってたら
やっぱり限定の機能なんですね。

・・・まぁそれだけでもすごい事です。
えーと、、、仕組みはここにあります。

string@appid.appspotmail.com

に送ると、

/_ah/mail/


に届くみたいですね。。。。
Cronとか駆使して、、、って考えてたんですけど、
開発環境でみる限り、メールを送信したら、サーブレットをPostしてくれるみたいです!
なんだ、、、色々楽ですね。。。

まず、appengine-web.xmlに
  1. <inbound-services>  
  2.   <service>mail</service>  
  3. </inbound-services>  


を追加します。

その後web.xmlに

  1.     <servlet>  
  2.       <servlet-name>mailHandle</servlet-name>  
  3.       <servlet-class>bz.ziro.kanbe.servlet.MailHandlerServlet</servlet-class>  
  4.     </servlet>  
  5.     <servlet-mapping>  
  6.       <servlet-name>mailHandle</servlet-name>  
  7.       <url-pattern>/_ah/mail/*</url-pattern>  
  8.     </servlet-mapping>  
  9.   
  10. ~  
  11.   
  12.     <security-constraint>  
  13.       <web-resource-collection>  
  14.         <url-pattern>/_ah/mail/*</url-pattern>  
  15.       </web-resource-collection>  
  16.       <auth-constraint>  
  17.         <role-name>admin</role-name>  
  18.       </auth-constraint>  
  19.     </security-constraint>  


を追加します。
servletの上はクラス名、下はURLです。
URLは固定ですね。

下のはセキュリティ設定です。
第三者が触れないようにadmin(アプリ管理者)のみ触れるようにしておきます。

その後HttpServletを派生したクラスを作成して
doPost()を実装します。

  1. @Override  
  2. protected void doPost(HttpServletRequest req, HttpServletResponse resp)  
  3.   throws ServletException, IOException {  
  4.   
  5.        try {  
  6.            Properties props = new Properties();  
  7.            Session session = Session.getDefaultInstance(props, null);  
  8.            MimeMessage message = new MimeMessage(session, req.getInputStream());  
  9.              
  10.   
  11.   
  12.        } catch (MessagingException e) {  
  13.            e.printStackTrace();  
  14.        } catch (Exception e) {  
  15.            e.printStackTrace();  
  16.        }  
  17. }  


これで、メールを受け取ったら動作します。
http://localhost:8080/_ah/admin/
にアクセスすると、inboundMailっていうのがあるので
開発環境ではここから送信できます。

先だって話したように、URLとメールアドレスが連動しているので
何のメールかとかをToで判断したりすればOKだと思います。

FlexのリリースビルドをAntで

Flexのリリースビルドを簡単にAntでやろうとしたらハマりました(>_<)



私のわかる程度に説明します。

まず、自分の環境に合わせて、設定をします。
なんか無駄なものもありそうですね。。。 ...mxmlc.jarはいらないっすね。

でmxmlcタグを作成します。
swcがある場合はそれを読み込みましょう!

ん~キャッシュがウンタラカンタラが難しかったです。
もう少しわかりすく書きたいっすけどね。