Difference between revisions of "Email/ja"

From Second Life Wiki
Jump to navigation Jump to search
m
Line 1: Line 1:
{{LSL_Event/ja
{{Issues/SVC-23}}{{LSL_Event/ja
|event_id=21|event_delay
|event_id=21|event_delay
|event=email
|event=email
|p1_type=string|p1_name=time|p1_desc=1970-01-01 00:00 (UTC) からメール送信時刻までの秒数を string 型にしたもの。
|p1_type=string|p1_name=time|p1_desc=<code>(string){{LSLG/ja|llGetUnixTime}}</code> の書式で指定|p1_hover=(string)llGetUnixTime の書式で指定
|p2_type=string|p2_name=address|p2_desc=送信者のメールアドレス
|p2_type=string|p2_name=address|p2_desc
|p3_type=string|p3_name=subject|p3_desc=メールの件名
|p3_type=string|p3_name=subject|p3_desc
|p4_type=string|p4_name=message|p4_desc=メール本文
|p4_type=string|p4_name=message|p4_desc
|p5_type=integer|p5_name=num_left|p5_desc=キューに残っているメールの数。{{Footnote|処理中のメールは既にキューから取り出されているためカウントしない。}}|p5_hover=キューに残っているメールの数。
|p5_type=integer|p5_name=num_left|p5_desc=キューに残っているメールの数。{{Footnote|処理中のメールは既にキューから取り出されているためカウントしない。}}|p5_hover=キューに残っているメールの数。
|event_desc={{LSLG/ja|llGetNextEmail}} が実行され、その引数に合致したメールがキューにあった場合に発生する。
|event_desc={{LSLG/ja|llGetNextEmail}} の呼び出しの結果、メールのキューの中に条件にヒットしたメールがある場合発生します。
|event_footnote=メールのキューはプリム単位に用意され、プリム内のどのスクリプトもそれにアクセスできる。<br/>プリムのメールアドレスは、その UUID に "@lsl.secondlife.com" を加えたもので、<code>{{LSLG/ja|llGetKey}}() + "@lsl.secondlife.com"</code> という具合になる。{{Footnote|1=プレビュー グリッドのメールアドレスは違った形式になる: {{LSLG/ja|llGetKey}}() + "@lsl." + grid + ".lindenlab.com" という具合で、メインのベータグリッドならば grid {{String|aditi}} を指定する。}}
|event_footnote=メールのキューはプリム単位に用意され、プリム内のどのスクリプトもそれにアクセスできます。<br/>プリムのメールアドレスは、その UUID に "@lsl.secondlife.com" を加えたもので、<code>{{LSLG/ja|llGetKey}}() + "@lsl.secondlife.com"</code> という具合になります。{{Footnote|1=プレビューグリッドのメールアドレスは違った形式になります: <code style="font-size: 123%;">{{LSLG/ja|llGetKey}}() + "@lsl." + grid + ".lindenlab.com"</code>; メインのベータグリッドならば grid の部分に {{String|aditi}} が入ります。|2=プレビューグリッドのメールアドレスは違った形式になります: llGetKey() + {{String|@lsl.}} + grid + {{String|.lindenlab.com}}; メインのベータグリッドならば grid の部分に {{String|aditi}} が入ります。}}
|constants
|constants
|spec=
|spec=
この email イベントは {{LSLG/ja|llGetNextEmail}} が実行され、その引数によるフィルタに合致したメールがあった場合に発生する。フィルタに合致した最初のメールはメール キューから削除され、そのデータはこのイベントの引数として使われる。フィルタに合致しなかったが、キューが空にもなっていないという場合、このイベントは発生しない。フィルタの効果の他、メール キューは {{HoverText|先入れ先出し|FIFO, First In First Out}} である。
email イベントは {{LSLG/ja|llGetNextEmail}} の結果、 {{LSLG/ja|llGetNextEmail}} で指定された検索条件に一致するメールがある場合に発生します。最初に検索条件にヒットしたメールはメールキューから削除され、そのデータはこのイベントの引数として渡されます。検索条件にヒットするメールがなく、キューが空でない場合は、イベントは発生しません。フィルタの結果によるもの以外は、メールキューは {{HoverText|FIFO|First In First Out: 先入れ先出し}} となります。
|caveats=
|caveats=
* メール キューは最大 100 通で、それ以上に溢れたメールは返送 (bounce) される。
* メールキューは最大 100 通で、それ以降のメールは返送されます。
* 引数の message は最大 1000 バイトまで入る。これには '''address''', '''subject''' などのヘッダ情報も含まれる。
* メッセージフィールドにはシングルバイト換算で最大 1000 文字まで入ります。これにはヘッダ情報 ('''address''', '''subject''' など) も含みます。
* SL 内から送信されるメールはそのメール本文の前に、送信元プリムの詳細に関するヘッダが置かれる。詳しくは {{LSLG/ja|llEmail}} を参照のこと。
* {{LSLG/ja|llEmail|SL の中から送信されたメール}} では、メッセージの先頭に送信元プリムの詳細が載ったヘッダがつきます。詳細は {{LSLG/ja|llEmail}} を参照してください。
* 2005 年以来存在するバグ {{Jira|SVC-23}} により、リージョンが再起動するかオブジェクトがリージョン境界をまたぐまで、オブジェクトがメール受信を完全に停止してしまう場合がある。(スクリプトの再起動では解決しない。) 最終的に、送信されたメールは再起動/リージョン移動の後に受信されるかもしれない。それゆえこのイベントを、信頼性が求められるリージョン間通信手段として当てにしてはならない。
* バグ {{Jira|SVC-23}} (2005 年から存在) により、地域が再起動されたりオブジェクトが地域の境界線をまたいだりするまでは、オブジェクトが電子メールを全く受信できないことがあります (スクリプトのリセットでも駄目です) 。送信された電子メールは再起動/地域間移動したあと、徐々に受信されていきます。このため、この関数を信頼できる SIM 間メッセージング手段と思ってはいけません。
|constants
|constants
|examples=<lsl>default
|examples=<lsl>default
Line 33: Line 33:
     {
     {
         if (llGetSubString(address, -19, -1) == "@lsl.secondlife.com")
         if (llGetSubString(address, -19, -1) == "@lsl.secondlife.com")
         {//SL 内から送られたメール。この例では単純にメールヘッダを取り除く。
         {//メッセージは SL の中から送信されました。この例ではヘッダを取り除くだけにします。
             message = llDeleteSubString(message, 0, llSubStringIndex(message, "\n\n") + 1);
             message = llDeleteSubString(message, 0, llSubStringIndex(message, "\n\n") + 1);
         }
         }
Line 51: Line 51:
|also_footer
|also_footer
|notes=
|notes=
SL 内から送信されたメールを処理する為のヒントについては [[llEmail/ja#Prim2Prim_Email|llEmail]] を参照のこと。
SL 内から送信されたメールの処理方法についてヒントがあります。 [[llEmail/ja#Prim2Prim_Email|llEmail]] を参照してください。
|mode
|mode
|deprecated
|deprecated

Revision as of 04:33, 19 May 2010

説明

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

llGetNextEmail の呼び出しの結果、メールのキューの中に条件にヒットしたメールがある場合発生します。

• string time (string)llGetUnixTime の書式で指定
• string address
• string subject
• string message
• integer num_left キューに残っているメールの数。[1]

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

仕様

email イベントは llGetNextEmail の結果、 llGetNextEmail で指定された検索条件に一致するメールがある場合に発生します。最初に検索条件にヒットしたメールはメールキューから削除され、そのデータはこのイベントの引数として渡されます。検索条件にヒットするメールがなく、キューが空でない場合は、イベントは発生しません。フィルタの結果によるもの以外は、メールキューは FIFO となります。

警告

  • メールキューは最大 100 通で、それ以降のメールは返送されます。
  • メッセージフィールドにはシングルバイト換算で最大 1000 文字まで入ります。これにはヘッダ情報 (address, subject など) も含みます。
  • SL の中から送信されたメール では、メッセージの先頭に送信元プリムの詳細が載ったヘッダがつきます。詳細は llEmail を参照してください。
  • バグ SVC-23 (2005 年から存在) により、地域が再起動されたりオブジェクトが地域の境界線をまたいだりするまでは、オブジェクトが電子メールを全く受信できないことがあります (スクリプトのリセットでも駄目です) 。送信された電子メールは再起動/地域間移動したあと、徐々に受信されていきます。このため、この関数を信頼できる SIM 間メッセージング手段と思ってはいけません。

サンプル

<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

特記事項

議論

   Region incoming email queue for objects becomes suspended

Footnotes

  1. ^ 処理中のメールは既にキューから取り出されているためカウントしない。
  2. ^ プレビューグリッドのメールアドレスは違った形式になります: llGetKey() + "@lsl." + grid + ".lindenlab.com"; メインのベータグリッドならば grid の部分に "aditi" が入ります。
この翻訳は 原文 と比べて古いですか?間違いがありますか?読みにくいですか?みんなで 修正 していきましょう! (手順はこちら)
この項目はあなたにとって参考にならない項目ですか?もしかしたらLSL Wikiの関連した項目が参考になるかもしれません。