Difference between revisions of "Email/ja"

From Second Life Wiki
Jump to navigation Jump to search
 
Line 18: Line 18:
* バグ {{Jira|SVC-23}} (2005 年から存在) により、地域が再起動されたりオブジェクトが地域の境界線をまたいだりするまでは、オブジェクトが電子メールを全く受信できないことがあります (スクリプトのリセットでも駄目です) 。送信された電子メールは再起動/地域間移動したあと、徐々に受信されていきます。このため、この関数を信頼できる SIM 間メッセージング手段と思ってはいけません。
* バグ {{Jira|SVC-23}} (2005 年から存在) により、地域が再起動されたりオブジェクトが地域の境界線をまたいだりするまでは、オブジェクトが電子メールを全く受信できないことがあります (スクリプトのリセットでも駄目です) 。送信された電子メールは再起動/地域間移動したあと、徐々に受信されていきます。このため、この関数を信頼できる SIM 間メッセージング手段と思ってはいけません。
|constants
|constants
|examples=<lsl>default
|examples=<source lang="lsl2">default
{
{
     state_entry()
     state_entry()
Line 42: Line 42:
             llGetNextEmail("", "");
             llGetNextEmail("", "");
     }
     }
}</lsl>
}</source>
|helpers
|helpers
|also_header
|also_header

Latest revision as of 10:01, 21 February 2016

説明

イベント: 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 間メッセージング手段と思ってはいけません。

サンプル

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("", "");
    }
}

注意点

SL 内から送信されたメールの処理方法についてヒントがあります。 llEmail を参照してください。

参考情報

関数

•  llEmail
•  llGetNextEmail

特記事項

議論

   Region incoming email queue for objects becomes suspended

Footnotes

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