Email/ja

From Second Life Wiki
< Email
Revision as of 07:31, 22 March 2009 by MasterOf Perl (talk | contribs) (Add parameter descriptions)
Jump to navigation Jump to search

説明

イベント: email( string time, string address, string subject, string message, integer num_left ){ ; }

llGetNextEmail が実行され、その引数に合致したメールがキューにあった場合に発生する。

• string time 1970-01-01 00:00 (UTC) からメール送信時刻までの秒数を string 型にしたもの。
• string address 送信者のメールアドレス
• string subject メールの件名
• string message メール本文
• integer num_left キューに残っているメールの数。(訳注:このイベントで取り込まれたメールは含まない。)

メールのキューはプリム単位に用意され、プリム内のどのスクリプトもそれにアクセスできる。
プリムのメールアドレスは、その UUID に "@lsl.secondlife.com" を加えたもので、llGetKey() + "@lsl.secondlife.com" という具合になる。[1]

仕様

この email イベントは llGetNextEmail が実行され、その引数によるフィルタに合致したメールがあった場合に発生する。フィルタに合致した最初のメールはメール キューから削除され、そのデータはこのイベントの引数として使われる。フィルタに合致しなかったが、キューが空にもなっていないという場合、このイベントは発生しない。フィルタの効果の他、メール キューは 先入れ先出し である。

警告

  • メール キューは最大 100 通で、それ以上に溢れたメールは返送 (bounce) される。
  • 引数の message は最大 1000 バイトまで入る。これには address, subject などのヘッダ情報も含まれる。
  • SL 内から送信されるメールはそのメール本文の前に、送信元プリムの詳細に関するヘッダが置かれる。詳しくは llEmail を参照のこと。
  • 2005 年以来存在するバグ SVC-23 により、リージョンが再起動するかオブジェクトがリージョン境界をまたぐまで、オブジェクトがメール受信を完全に停止してしまう場合がある。(スクリプトの再起動では解決しない。) 最終的に、送信されたメールは再起動/リージョン移動の後に受信されるかもしれない。それゆえこのイベントを、信頼性が求められるリージョン間通信手段として当てにしてはならない。

サンプル

<lsl>default {

   state_entry()
   {
       llSetTimerEvent(5.0);
   }

   timer()
   {
       llGetNextEmail("", "");
   }

   email( string time, string address, string subject, string message, integer num_left )
   {
       if (llGetSubString(address, -19, -1) == "@lsl.secondlife.com")
       {//SL 内から送られたメール。この例では単純にメールヘッダを取り除く。
           message = llDeleteSubString(message, 0, llSubStringIndex(message, "\n\n") + 1);
       }
       
       llSay(0, message);
       if(num_left)
           llGetNextEmail("", "");
   }

}</lsl>

注意点

SL 内から送信されたメールを処理する為のヒントについては llEmail を参照のこと。

参考情報

関数

•  llEmail
•  llGetNextEmail

特記事項

Footnotes

  1. ^ プレビュー グリッドのメールアドレスは違った形式になる: llGetKey() + "@lsl." + grid + ".lindenlab.com" という具合で、メインのベータグリッドならば grid に "aditi" を指定する。
この翻訳は 原文 と比べて古いですか?間違いがありますか?読みにくいですか?みんなで 修正 していきましょう! (手順はこちら)
この項目はあなたにとって参考にならない項目ですか?もしかしたらLSL Wikiの関連した項目が参考になるかもしれません。