Difference between revisions of "Email/ja"
< Email
Jump to navigation
Jump to search
(Add parameter descriptions) |
m (Apply LSLG Template) |
||
Line 7: | Line 7: | ||
|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=キューに残っているメールの数。(訳注:このイベントで取り込まれたメールは含まない。) | |p5_type=integer|p5_name=num_left|p5_desc=キューに残っているメールの数。(訳注:このイベントで取り込まれたメールは含まない。) | ||
|event_desc= | |event_desc={{LSLG/ja|llGetNextEmail}} が実行され、その引数に合致したメールがキューにあった場合に発生する。 | ||
|event_footnote=メールのキューはプリム単位に用意され、プリム内のどのスクリプトもそれにアクセスできる。<br/>プリムのメールアドレスは、その UUID に "@lsl.secondlife.com" を加えたもので、<code> | |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}} を指定する。}} | ||
|constants | |constants | ||
|spec= | |spec= | ||
この email イベントは | この email イベントは {{LSLG/ja|llGetNextEmail}} が実行され、その引数によるフィルタに合致したメールがあった場合に発生する。フィルタに合致した最初のメールはメール キューから削除され、そのデータはこのイベントの引数として使われる。フィルタに合致しなかったが、キューが空にもなっていないという場合、このイベントは発生しない。フィルタの効果の他、メール キューは {{HoverText|先入れ先出し|FIFO, First In First Out}} である。 | ||
|caveats= | |caveats= | ||
* メール キューは最大 100 通で、それ以上に溢れたメールは返送 (bounce) される。 | * メール キューは最大 100 通で、それ以上に溢れたメールは返送 (bounce) される。 | ||
* 引数の message は最大 1000 バイトまで入る。これには '''address''', '''subject''' などのヘッダ情報も含まれる。 | * 引数の message は最大 1000 バイトまで入る。これには '''address''', '''subject''' などのヘッダ情報も含まれる。 | ||
* SL 内から送信されるメールはそのメール本文の前に、送信元プリムの詳細に関するヘッダが置かれる。詳しくは | * SL 内から送信されるメールはそのメール本文の前に、送信元プリムの詳細に関するヘッダが置かれる。詳しくは {{LSLG/ja|llEmail}} を参照のこと。 | ||
* 2005 年以来存在するバグ {{Jira|SVC-23}} により、リージョンが再起動するかオブジェクトがリージョン境界をまたぐまで、オブジェクトがメール受信を完全に停止してしまう場合がある。(スクリプトの再起動では解決しない。) 最終的に、送信されたメールは再起動/リージョン移動の後に受信されるかもしれない。それゆえこのイベントを、信頼性が求められるリージョン間通信手段として当てにしてはならない。 | * 2005 年以来存在するバグ {{Jira|SVC-23}} により、リージョンが再起動するかオブジェクトがリージョン境界をまたぐまで、オブジェクトがメール受信を完全に停止してしまう場合がある。(スクリプトの再起動では解決しない。) 最終的に、送信されたメールは再起動/リージョン移動の後に受信されるかもしれない。それゆえこのイベントを、信頼性が求められるリージョン間通信手段として当てにしてはならない。 | ||
|constants | |constants | ||
Line 46: | Line 46: | ||
|also_header | |also_header | ||
|also_events | |also_events | ||
|also_functions={{LSL DefineRow|| | |also_functions={{LSL DefineRow||{{LSLG/ja|llEmail}}|}} | ||
{{LSL DefineRow|| | {{LSL DefineRow||{{LSLG/ja|llGetNextEmail}}|}} | ||
|also_articles | |also_articles | ||
|also_footer | |also_footer |
Revision as of 05:18, 13 April 2009
LSL ポータル | 関数 | イベント | 型 | 演算子 | 定数 | 実行制御 | スクリプトライブラリ | カテゴリ別スクリプトライブラリ | チュートリアル |
説明
イベント: email( string time, string address, string subject, string message, integer num_left ){ ; }21 | イベント ID |
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 |
特記事項
この項目はあなたにとって参考にならない項目ですか?もしかしたらLSL Wikiの関連した項目が参考になるかもしれません。